[PATCH] D27238: [libFuzzer] Diff 7 - Improve Signal Handler interface.

Marcos Pividori via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 7 11:53:51 PST 2016


mpividori added inline comments.


================
Comment at: lib/Fuzzer/FuzzerUtilWindows.cpp:30
 
-LONG WINAPI SEGVHandler(PEXCEPTION_POINTERS ExceptionInfo) {
+static struct {
+   bool HandleAbrt = false;
----------------
kcc wrote:
> mpividori wrote:
> > kcc wrote:
> > > mpividori wrote:
> > > > kcc wrote:
> > > > > Why do you need a copy of the flags? 
> > > > @kcc,
> > > > We can't save a reference to Options, because we don't know when it will be destroyed. The ExceptionHandler() function must access to Handler option the entire life of the program.
> > > you can rely on this FuzzingOptions object to be live throughout the process. 
> > @kcc I wanted to avoid that kind of assumptions. But if you prefer I can do that.....
> the options is a global scope object. It's not an assumption, it's a contract, all of the rest of the code rely on it. 
@kcc , it is not strictly global, it is defined inside `FuzzerDriver()`. It will work fine now because we don't do anything after returning from `FuzzerDriver()`. In the future, if we change the code and do something else after executing `FuzzerDriver()` which generates an exception, we are in troubles. We must remember this assumption ....
Thanks,


Repository:
  rL LLVM

https://reviews.llvm.org/D27238





More information about the llvm-commits mailing list