Formal Verification of a Memory Allocation Module of Contiki with Frama-C: A Case Study

  • Frédéric Mangano
  • Simon Duquennoy
  • Nikolai KosmatovEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10158)


Formal verification is still rarely applied to the IoT (Internet of Things) software, whereas IoT applications tend to become increasingly popular and critical. This short paper promotes the usage of formal verification to ensure safety and security of software in this domain. We present a successful case study on deductive verification of a memory allocation module of Contiki, a popular open-source operating system for IoT. We present the target module, describe how the code has been specified and proven using Frama-C, a software analysis platform for C code, and discuss lessons learned.


Deductive verification Specification \(\textsc {Frama}\text {-}\textsc {C}\) Contiki Memory allocation 



Part of the research work leading to these results has received funding for DEWI project ( from the ARTEMIS Joint Undertaking under grant agreement No. 621353. The second author has also been partially supported by a grant from CPER Nord-Pas-de-Calais/FEDER DATA and the distributed environment Ecare@Home funded by the Swedish Knowledge Foundation 2015–2019. Special thanks to Allan Blanchard, François Bobot and Loïc Correnson for advice, and to the anonymous referees for their helpful comments.


  1. 1.
    Dunkels, A., Gronvall, B., Voigt, T.: Contiki - a lightweight and flexible operating system for tiny networked sensors. In: LCN (2014)Google Scholar
  2. 2.
    Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C: a software analysis perspective. Formal Asp. Comput. 27(3), 573–609 (2015)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Montenegro, G., Kushalnagar, N., Hui, J., Culler, D.: Transmission of IPv6 packets over IEEE 802.15.4 networks. RFC 4944, September 2007.
  4. 4.
    Blanchard, A., Kosmatov, N., Lemerre, M., Loulergue, F.: A case study on formal verification of the anaxagoros hypervisor paging system with Frama-C. In: Núñez, M., Güdemann, M. (eds.) FMICS 2015. LNCS, vol. 9128, pp. 15–30. Springer, Cham (2015). doi: 10.1007/978-3-319-19458-5_2 CrossRefGoogle Scholar
  5. 5.
    Baudin, P., Cuoq, P., Filliâtre, J.C., Marché, C., Monate, B., Moy, Y., Prevosto, V.: ACSL: ANSI/ISO C Specification Language.

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Frédéric Mangano
    • 1
  • Simon Duquennoy
    • 2
    • 3
  • Nikolai Kosmatov
    • 1
    Email author
  1. 1.CEA, LIST, Software Reliability Laboratory, PC 174Gif-sur-YvetteFrance
  2. 2.Inria Lille - Nord EuropeLilleFrance
  3. 3.SICS Swedish ICTKistaSweden

Personalised recommendations