| | |
Summary: Inferring Data Polymorphism in Systems Code
Brian Hackett
Stanford University
bhackett@cs.stanford.edu
Alex Aiken
Stanford University
aiken@cs.stanford.edu
ABSTRACT
We describe techniques for analyzing data polymorphism in
C, and show that understanding data polymorphism is im-
portant for statically verifying type casts in the Linux kernel,
where our techniques prove the safety of 75% of downcasts
to structure types, out of a population of 28767. We also
discuss prevalent patterns of data polymorphism in Linux,
including code patterns we can handle and those we cannot.
General Terms
Verification, Experimentation
Keywords
type checking, type casting, static analysis
1. INTRODUCTION
|