This is an archive of the discontinued LLVM Phabricator instance.

[Sanitizers] By default build libFuzzer with frame pointers.
ClosedPublic

Authored by alekseyshl on Oct 12 2017, 4:35 PM.

Details

Summary

Lacking frame pointers, sanitized fuzzers collect bogus stack
traces and the set of stack traces grows indefinitely, leading to OOMs.

Event Timeline

alekseyshl created this revision.Oct 12 2017, 4:35 PM
vitalybuka accepted this revision.Oct 12 2017, 4:40 PM
This revision is now accepted and ready to land.Oct 12 2017, 4:40 PM
eugenis added inline comments.Oct 12 2017, 4:47 PM
lib/fuzzer/CMakeLists.txt
35

COMPILER_RT_LIBFUZZER_OMIT_FRAME_POINTER - why is it needed? We don't have a similar escape hatch for every other compiler option, why start now?

alekseyshl added inline comments.Oct 12 2017, 5:01 PM
lib/fuzzer/CMakeLists.txt
35

If your fuzz target is going to be built with no sanitizers, why would you need frame pointers? Or you think it's excessive and frame pointers are not a big deal to always have them?

eugenis added inline comments.Oct 12 2017, 5:05 PM
lib/fuzzer/CMakeLists.txt
35

No one really does that, I hope.
Also, libfuzzer is now part of the toolchain, and people building fuzz targets don't rebuild it.

  • Always build libFuzzer with frame pointers
alekseyshl marked an inline comment as done.Oct 12 2017, 5:08 PM