Coccinelle: Bug Finding for the Linux Community – Julia Lawall University of Copenhagen

October 4th, 2011

Monday October 10, King 221 4:30 p.m.

An operating system is the software that provides the connection between application software and the underlying hardware.  As such, its development is challenging and its correctness is critical.  Linux is an open source operating system, developed by programmers around the world, who have a widely varying degree of expertise.  These factors have implied that the introduction of bugs is continuous, and indeed seems inevitable.  Adequate tools are thus needed to help programmers find these bugs in their code. Such tools furthermore need to be suited to the expertise and working style of the programmers that should use them. In recent work, we have developed the program matching and transformation tool Coccinelle.  Coccinelle makes it possible to match and transform code according to specifications that looks like the processed code itself.  Concretely, Coccinelle provides the notion of a "semantic patch", which is like the patch (diff) familiar to Linux developers, but is more general, allowing a single specification to match code found all over the Linux kernel.  In this talk, we will introduce Coccinelle and present a number of bugs recently found in Linux code by using this tool. Joint work with Gilles Muller, INRIA Sponsored by the Computer Science Department, College Leading Edge Fund, and the Alumni Office ASOC Program