next up previous
Next: 5.4 Evaluation Up: 5 Real-World Tests Previous: 5.2 Test Setup

5.3 Results

Following is a brief description of the analysis results on some test samples:

The first run gave many warnings; hotspot analysis led to a real format string vulnerability previously unknown to us. The vulnerability turned out to be known to others [35]. In addition, there were a few warnings unrelated to taint analysis.
The first run generated many warnings. After looking at the hotspots and the list of unannotated functions, six library function wrappers were annotated with polymorphic types in the local prelude file. A subsequent run showed twelve warnings, one of which was a real vulnerability (known to others [22]).
The hotspots from the first run guided us to mark one function with a polymorphic type. After this, there were two warnings, one of which was a bug of which we were not previously aware. We later found that this bug had already been discovered by others [4].
In the first run, there were a few hundred warnings, but the hotspots suggested making two functions polymorphic. When this was done, there were no more warnings. Note that others had previously reported questionable function calls where the auditor was not able to determine whether the property could be exploited [25]; our tool gives strong evidence that they are not exploitable.
No warnings issued. As with mars_nwe, an auditor had previously reported a suspicious function call of unknown exploitability [24]; cqual made it easy to verify that these calls were safe.
In the first two runs, there were some warnings due to inconsistent declarations in the prelude and the source files. After these were set right, no warnings were issued.
The first run suggested annotation of twelve vararg functions. After these were made polymorphic, there were no more warnings.
imapd, ipopd, and identd:
No warnings issued.

next up previous
Next: 5.4 Evaluation Up: 5 Real-World Tests Previous: 5.2 Test Setup
Umesh Shankar 2001-05-16