This is an archive of the discontinued LLVM Phabricator instance.

Add fuzzer::DSORelativeValues
AbandonedPublic

Authored by aarongreen on Jan 12 2021, 9:25 AM.

Details

Summary

This changes intoduces fuzzer::DSORelativeValues, which can be used to represent features and PC indices independent of the DSO load order. This is required for cross-process fuzzing that involves multiple loaders.

In this change, DSORelativeValues are only invoked by the unit tests. Subsequent changes will integrate with areas where coverage is compared across multiple invocations of the fuzzer.

This is change 4 of (at least) 18 for cross-process fuzzing support.

Diff Detail

Event Timeline

aarongreen created this revision.Jan 12 2021, 9:25 AM
aarongreen requested review of this revision.Jan 12 2021, 9:25 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 12 2021, 9:25 AM
Herald added a subscriber: Restricted Project. · View Herald Transcript
aarongreen updated this revision to Diff 321576.Feb 4 2021, 3:04 PM
morehouse accepted this revision.Feb 4 2021, 3:26 PM
morehouse added inline comments.
compiler-rt/lib/fuzzer/FuzzerDSORelative.h
53
This revision is now accepted and ready to land.Feb 4 2021, 3:26 PM
aarongreen updated this revision to Diff 321770.Feb 5 2021, 8:38 AM

Renamed DSO -> Module to be more in keeping with LLVM. Fixed a bug in calculating features that caused tests to fail when run with sanitizer instrumentation.

aarongreen abandoned this revision.Sep 1 2021, 9:06 AM

Multiprocess fuzzing will not be supported by the libFuzzer maintainers. Fuchsia has implemented a new approach with their Component Fuzzing Framework (RFC-117).