aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-12-31 07:51:57 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-12-31 11:23:51 +0100
commit72e912b366997786c9fe695fbb282bf8c1eb2f1c (patch)
treeb7679621bcd85092aa052cbd0cf7e4a858bc537b
parent10833a387680835e4d27e3b99d1270d3d037f7c3 (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.go7
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 {