-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 04/12/11 13:33, Hargett, Matt wrote:
> Hey Sarah,
>
> Many array bounds and format string problems can already be found, especially
> with LTO, ClooG, loop-unrolling, and -O3 enabled. Seeing across object-file
> boundaries, understanding loop boundaries, and aggressive inlining allows GCC
> to warn about a lot of real-world vulnerabilities. When multiple IPA passes
> lands in trunk, it should be even better.
>
> What I think is missing is:
>
> 1) detection of double-free. This is already a function attribute called
> 'malloc', which is used to express a specific kind of allocation function
> whose return value will never be aliased. You could use that attribute, in
> addition to a new one ('free'), to track potential double-frees of values via
> VRP/IPA.
To do a good job at this, I think we need to be able to annotate
functions which must/may free one of their parameters. We then need to
be able to propagate that information through the call graph.
Once you've got that annotation propagated through the call graph, a
use-after-free (which is a superset of double-free) is a lot more powerful.
This may be a subset of what you want for #2 (taint & filtering side
effects for parameters).
Jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJNpLCfAAoJEBRtltQi2kC7FBEIAKA+R7ILHrCtIFoXBbH7fmsL
rU2Mjcv5enJndlqz/0yHNPQKpC4wNLrsrYghBytHCT/NC0xYXSfh4WsYqq2uRhMo
GNSBl630f2/zPBZxomZFwdxmrkRSozeM69/JVyDL5jDVBdMcYZ4KwG0Wc3SybaTi
OCxoCPb+GEoQqZ9HBwXp6svy+uYPZjAhpKFlW8PFksJ86x2YvBjg77ByZonY1Rku
7XeUWxFkOShLaaFlcyQWo5FI8fSLMO0lihzSgeiTQEgOYjvFX6lXTH5J6o41UQDb
9ZPr2gz5Y6ubaY7ZZM6jXDnovFVKzlRj4Bu9YEN/U7EDtUW4bKOXFqcOb4fE3SA=
=snnv
-----END PGP SIGNATURE-----