aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-08-14 13:40:17 +0200
committerAleksandr Nogikh <nogikh@google.com>2024-08-14 13:03:10 +0000
commit95696db519b9375ae7350800e30c7f56249aa14f (patch)
tree7f7b41abb16611510b136faa28ba8e6bc0a6a65c
parent6a5293d22d629e2467cae8e96dd343779c018612 (diff)
syz-manager: favorize smaller corpus programs
Sort seeds by the number of calls in the program, so that the fuzzer triages the smaller programs first. This should prevent the overshadowing of smaller programs by the larger ones.
-rw-r--r--syz-manager/manager.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/syz-manager/manager.go b/syz-manager/manager.go
index 2efacc4c8..21d568d67 100644
--- a/syz-manager/manager.go
+++ b/syz-manager/manager.go
@@ -17,6 +17,7 @@ import (
"os/exec"
"path/filepath"
"runtime"
+ "sort"
"sync"
"sync/atomic"
"time"
@@ -654,6 +655,10 @@ func (mgr *Manager) loadCorpus() []fuzzer.Candidate {
candidates = append(candidates, item)
}
log.Logf(0, "%-24v: %v (%v seeds)", "corpus", len(candidates), seeds)
+ // Let's favorize smaller programs, otherwise the poorly minimized ones may overshadow the rest.
+ sort.SliceStable(candidates, func(i, j int) bool {
+ return len(candidates[i].Prog.Calls) < len(candidates[j].Prog.Calls)
+ })
return candidates
}