During our experiments, we found 6 real out-of-bounds bugs (true positives). Five of these bugs were already known, and one was detected by GCC-MPX and was not previously reported.
The bugs found are:
ferret
(PARSEC);h264ref
(SPEC);perlbench
(SPEC);x264
(PARSEC);h264ref
(SPEC);perlbench
(SPEC).Approach | Bug 1 | Bug 2 | Bug 3 | Bug 4 | Bug 5 | Bug 6 |
---|---|---|---|---|---|---|
MPX (GCC) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
MPX (GCC) no narrow bounds | ✔ | ✔ | ✔ | |||
MPX (GCC) only writes | ✔ | ✔ | ✔ | ✔ | ✔ | |
MPX (GCC) no narrow bounds + only writes | ✔ | ✔ | ✔ | |||
MPX (ICC) | NA | ✔ | ✔ | NA | ||
MPX (ICC) no narrow bounds | ✔ | NA | ✔ | NA | NA | |
MPX (ICC) only writes | NA | ✔ | ✔ | NA | ||
MPX (ICC) no narrow bounds + only writes | ✔ | ✔ | ✔ | NA | ||
AddressSanitizer | ✔ | ✔ | ✔ | |||
SoftBound | NA | NA | NA | NA | ||
SAFECode | NA | ✔ | ✔ | NA |
A more refined summary table as well as descriptions of the aforementioned bugs can be found in the Usability page.