aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/fuzzer
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-08-08 15:54:45 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-08-13 08:36:17 +0000
commit24d82c00908b7ce88f806bc92f0e5e5590a836bb (patch)
treeb6d1a6c99e904c0d9f45aaa2d18c71c5a88d0d9f /pkg/fuzzer
parent7b0f4b466c607f4d0fb87ca80c45a43dc937d122 (diff)
pkg/fuzzer: don't retry triage in snapshot mode
Diffstat (limited to 'pkg/fuzzer')
-rw-r--r--pkg/fuzzer/fuzzer.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/pkg/fuzzer/fuzzer.go b/pkg/fuzzer/fuzzer.go
index 17b3d3391..afd131fc4 100644
--- a/pkg/fuzzer/fuzzer.go
+++ b/pkg/fuzzer/fuzzer.go
@@ -153,7 +153,12 @@ func (fuzzer *Fuzzer) processResult(req *queue.Request, res *queue.Result, flags
// Corpus candidates may have flaky coverage, so we give them a second chance.
maxCandidateAttempts := 3
if req.Risky() {
+ // In non-snapshot mode usually we are not sure which exactly input caused the crash,
+ // so give it one more chance. In snapshot mode we know for sure, so don't retry.
maxCandidateAttempts = 2
+ if fuzzer.Config.Snapshot {
+ maxCandidateAttempts = 0
+ }
}
if len(triage) == 0 && flags&ProgFromCorpus != 0 && attempt < maxCandidateAttempts {
fuzzer.enqueue(fuzzer.candidateQueue, req, flags, attempt+1)