aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-18 19:50:50 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-18 19:50:50 +0200
commit45c54f755c6dee216beaeeef11e98a0375102712 (patch)
treede5010e482c67c179a1237168f88a62d4ece4779
parentee54fec6dae601bf9a349f2dbc40c1012f4491a1 (diff)
syz-manager: fix race during reporter init
-rw-r--r--syz-manager/manager.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/syz-manager/manager.go b/syz-manager/manager.go
index 16affa1f5..1f73c531d 100644
--- a/syz-manager/manager.go
+++ b/syz-manager/manager.go
@@ -45,6 +45,7 @@ type Manager struct {
cfg *mgrconfig.Config
vmPool *vm.Pool
target *prog.Target
+ reporterInit sync.Once
reporter report.Reporter
crashdir string
port int
@@ -824,7 +825,7 @@ func (mgr *Manager) saveRepro(res *repro.Result, hub bool) {
}
func (mgr *Manager) getReporter() report.Reporter {
- if mgr.reporter == nil {
+ mgr.reporterInit.Do(func() {
<-allSymbolsReady
var err error
// TODO(dvyukov): we should introduce cfg.Kernel_Obj dir instead of Vmlinux.
@@ -839,7 +840,7 @@ func (mgr *Manager) getReporter() report.Reporter {
if err != nil {
log.Fatalf("%v", err)
}
- }
+ })
return mgr.reporter
}