diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-12-31 07:51:57 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-12-31 11:23:51 +0100 |
| commit | 72e912b366997786c9fe695fbb282bf8c1eb2f1c (patch) | |
| tree | b7679621bcd85092aa052cbd0cf7e4a858bc537b | |
| parent | 10833a387680835e4d27e3b99d1270d3d037f7c3 (diff) | |
syz-fuzzer: tell manager we are not dead while fetching corpus
Initial fetch of corpus caused "no output" in qemu emulation.
Tell manager we are not dead while fetching.
| -rw-r--r-- | syz-fuzzer/fuzzer.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/syz-fuzzer/fuzzer.go b/syz-fuzzer/fuzzer.go index 404141c78..98fbecd8e 100644 --- a/syz-fuzzer/fuzzer.go +++ b/syz-fuzzer/fuzzer.go @@ -254,7 +254,11 @@ func main() { gateCallback := fuzzer.useBugFrames(r, *flagProcs) fuzzer.gate = ipc.NewGate(2**flagProcs, gateCallback) - for i := 0; fuzzer.poll(i == 0, nil); i++ { + for needCandidates, more := true, true; more; needCandidates = false { + more = fuzzer.poll(needCandidates, nil) + // This loop lead to "no output" in qemu emulation, tell manager we are not dead. + log.Logf(0, "fetching corpus: %v, signal %v/%v (executing program)", + len(fuzzer.corpus), len(fuzzer.corpusSignal), len(fuzzer.maxSignal)) } calls := make(map[*prog.Syscall]bool) for _, id := range r.CheckResult.EnabledCalls[sandbox] { @@ -266,6 +270,7 @@ func main() { fuzzer.execOpts.Flags |= ipc.FlagEnableCoverageFilter } + log.Logf(0, "starting %v fuzzer processes", *flagProcs) for pid := 0; pid < *flagProcs; pid++ { proc, err := newProc(fuzzer, pid) if err != nil { |
