From 72e912b366997786c9fe695fbb282bf8c1eb2f1c Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 31 Dec 2020 07:51:57 +0100 Subject: 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. --- syz-fuzzer/fuzzer.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 { -- cgit mrf-deployment