par Penninckx, Willem;Mühlberg, Jan Tobias ;Smans, Jan;Jacobs, Bart;Piessens, Frank
Référence 4th International Symposium, NFM 2012(April 3-5, 2012: Norfolk, VA, USA), NASA Formal Methods, Lecture notes in computer science (7226), page (210–215)
Publication Publié, 2012
Publication dans des actes
Résumé : Case studies on formal software verification can be divided into two categories: while (i) unsound approaches may miss errors or report false-positive alarms due to coarse abstractions, (ii) sound approaches typically do not handle certain programming constructs like concurrency and/or suffer from scalability issues. This paper presents a case study on successfully verifying the Linux USB BP keyboard driver. Our verification approach is (a) sound, (b) takes into account dynamic memory allocation, complex API rules and concurrency, and (c) is applied on a real kernel driver which was not written with verification in mind. We employ VeriFast, a software verifier based on separation logic. Besides showing that it is possible to verify this device driver, we identify the parts where the verification went smoothly and the parts where the verification approach requires further research to be carried out.