diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2024-10-24 18:38:29 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-10-25 12:08:02 +0000 |
| commit | 42a1ab121510d4ace36fddeb7396bdb7f28bd489 (patch) | |
| tree | c0d125be7a5309878ff58cd3d0e1d4a7e4aa3cc9 /tools | |
| parent | f63b8696b67a1c47ecd4fced47215acd6805a14a (diff) | |
pkg/corpus: move focus area configuration to the constructor
Set Corpus in HTTPServer dynamically.
Refactor syz-manager and syz-diff accordingly.
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/syz-diff/diff.go | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/tools/syz-diff/diff.go b/tools/syz-diff/diff.go index e593205bc..6a6a0991d 100644 --- a/tools/syz-diff/diff.go +++ b/tools/syz-diff/diff.go @@ -90,7 +90,6 @@ func main() { http: &manager.HTTPServer{ Cfg: newCfg, StartTime: time.Now(), - Corpus: new.corpus, DiffStore: store, }, } @@ -232,7 +231,6 @@ type kernelContext struct { ctx context.Context cfg *mgrconfig.Config reporter *report.Reporter - corpus *corpus.Corpus fuzzer atomic.Pointer[fuzzer.Fuzzer] serv rpcserver.Server servStats rpcserver.Stats @@ -256,7 +254,6 @@ func setup(ctx context.Context, name string, cfg *mgrconfig.Config) *kernelConte name: name, ctx: ctx, cfg: cfg, - corpus: corpus.NewCorpus(ctx), crashes: make(chan *report.Report, 128), candidates: make(chan []fuzzer.Candidate), servStats: rpcserver.NewNamedStats(name), @@ -320,8 +317,9 @@ func (kc *kernelContext) MachineChecked(features flatrpc.Feature, syscalls map[* func (kc *kernelContext) setupFuzzer(features flatrpc.Feature, syscalls map[*prog.Syscall]bool) queue.Source { rnd := rand.New(rand.NewSource(time.Now().UnixNano())) - fuzzerObj := fuzzer.NewFuzzer(context.Background(), &fuzzer.Config{ - Corpus: kc.corpus, + corpusObj := corpus.NewFocusedCorpus(kc.ctx, nil, kc.coverFilters.Areas) + fuzzerObj := fuzzer.NewFuzzer(kc.ctx, &fuzzer.Config{ + Corpus: corpusObj, Coverage: kc.cfg.Cover, // TODO: it may be unstable between different revisions though. // For now it's only kept true because it seems to increase repro chances in local runs (???). @@ -343,6 +341,7 @@ func (kc *kernelContext) setupFuzzer(features flatrpc.Feature, syscalls map[*pro if kc.http != nil { kc.http.Fuzzer.Store(fuzzerObj) kc.http.EnabledSyscalls.Store(syscalls) + kc.http.Corpus.Store(corpusObj) } filtered := manager.FilterCandidates(<-kc.candidates, syscalls, false).Candidates @@ -376,7 +375,6 @@ func (kc *kernelContext) CoverageFilter(modules []*vminfo.KernelModule) []uint64 log.Fatalf("failed to init coverage filter: %v", err) } kc.coverFilters = filters - kc.corpus.SetFocusAreas(filters.Areas) log.Logf(0, "cover filter size: %d", len(filters.ExecutorFilter)) if kc.http != nil { kc.http.Cover.Store(&manager.CoverageInfo{ |
