From e4bcab16af4969c5f98f2da4e92691c4fa21c999 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 20 Dec 2021 19:14:52 +0100 Subject: syz-manager: don't symbolize reproducer twice The recent commit 'pkg/mgrconfig: add "interests"' made pkg/repro symbolize returned reports. But syz-manager symbolizes them as well. This leads to double symbolization. Don't symbolize second time. Fixes #2934 --- pkg/report/report.go | 6 ++++++ syz-manager/manager.go | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/report/report.go b/pkg/report/report.go index 9346f0322..4cd19db5f 100644 --- a/pkg/report/report.go +++ b/pkg/report/report.go @@ -67,6 +67,8 @@ type Report struct { guiltyFile string // reportPrefixLen is length of additional prefix lines that we added before actual crash report. reportPrefixLen int + // symbolized is set if the report is symbolized. + symbolized bool } type Type int @@ -220,6 +222,10 @@ func (reporter *Reporter) ContainsCrash(output []byte) bool { } func (reporter *Reporter) Symbolize(rep *Report) error { + if rep.symbolized { + panic("Symbolize is called twice") + } + rep.symbolized = true if err := reporter.impl.Symbolize(rep); err != nil { return err } diff --git a/syz-manager/manager.go b/syz-manager/manager.go index 3779f8365..dc435f39f 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -846,9 +846,6 @@ func (mgr *Manager) saveFailedRepro(rep *report.Report, stats *repro.Stats) { func (mgr *Manager) saveRepro(res *repro.Result, stats *repro.Stats, hub bool) { rep := res.Report - if err := mgr.reporter.Symbolize(rep); err != nil { - log.Logf(0, "failed to symbolize repro: %v", err) - } opts := fmt.Sprintf("# %+v\n", res.Opts) prog := res.Prog.Serialize() -- cgit mrf-deployment