Description
Date depot: 1 janvier 1900
Titre: Systematizing Error Handling in Linux
Directeur de thèse:
Gilles MULLER (Non relevant)
Domaine scientifique: Sciences et technologies de l'information et de la communication
Thématique CNRS : Non defini
Resumé:
The C programming language does not provide any built-in error
handling abstractions such as the exceptions found in Java and other
languages. Thus, the Linux developer has to explicitly construct code
for handling each error. Such code typically involves freeing all
previously allocated resources and returning some error number to
describe the error condition. In a study of Linux code done in the
Coccinelle project (www.emn.fr/x-info/coccinelle), we have observed
that error handling code is frequently itself a source of errors,
arising either when a developer adds new error handling code and
overlooks some required cleanup operations or when a developer adds a
new operation requiring cleanup and does not update all of the
affected error handling code. This issue has indeed been noticed by
Linux developers, who have introduced a coding style in which all
cleanup operations are placed in a sequence at the end of the
function, after a successful return, and are reached by appropriate
gotos into the sequence. This style ensures that no cleanup operations
are overlooked, at least if the right goto operations are used.
Nevertheless, much of Linux still does not use this style, and
converting to it is tedious and error prone.
The goal of this PhD to develop a tool for checking error handling
code in Linux and converting it to the new style if needed.
Doctorant.e: Saha Suman