From ad54dc7a6dd1fd2f2f106e59ff234f0a5d4686a2 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Sat, 12 Sep 2020 17:14:19 +0200 Subject: syz-manager: cosmetic refactoring 1. Don't duplicate VM name generation. 2. Always "shutdown" fuzzers to not keep stale machine info. --- syz-manager/manager.go | 9 ++++----- syz-manager/rpc.go | 7 +++---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/syz-manager/manager.go b/syz-manager/manager.go index 8f4392d0d..3a65a7300 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -536,7 +536,9 @@ func (mgr *Manager) runInstance(index int) (*Crash, error) { mgr.checkUsedFiles() instanceName := fmt.Sprintf("vm-%d", index) - rep, err := mgr.runInstanceInner(index) + rep, err := mgr.runInstanceInner(index, instanceName) + + machineInfo := mgr.serv.shutdownInstance(instanceName) // Error that is not a VM crash. if err != nil { @@ -546,8 +548,6 @@ func (mgr *Manager) runInstance(index int) (*Crash, error) { if rep == nil { return nil, nil } - - machineInfo := mgr.serv.getMachineInfo(instanceName) crash := &Crash{ vmIndex: index, hub: false, @@ -557,7 +557,7 @@ func (mgr *Manager) runInstance(index int) (*Crash, error) { return crash, nil } -func (mgr *Manager) runInstanceInner(index int) (*report.Report, error) { +func (mgr *Manager) runInstanceInner(index int, instanceName string) (*report.Report, error) { inst, err := mgr.vmPool.Create(index) if err != nil { return nil, fmt.Errorf("failed to create instance: %v", err) @@ -596,7 +596,6 @@ func (mgr *Manager) runInstanceInner(index int) (*report.Report, error) { atomic.AddUint32(&mgr.numFuzzing, 1) defer atomic.AddUint32(&mgr.numFuzzing, ^uint32(0)) - instanceName := fmt.Sprintf("vm-%d", index) cmd := instance.FuzzerCmd(fuzzerBin, executorCmd, instanceName, mgr.cfg.TargetOS, mgr.cfg.TargetArch, fwdAddr, mgr.cfg.Sandbox, procs, fuzzerV, mgr.cfg.Cover, *flagDebug, false, false) diff --git a/syz-manager/rpc.go b/syz-manager/rpc.go index 2b75dd440..5683e7e2a 100644 --- a/syz-manager/rpc.go +++ b/syz-manager/rpc.go @@ -310,15 +310,14 @@ func (serv *RPCServer) Poll(a *rpctype.PollArgs, r *rpctype.PollRes) error { return nil } -func (serv *RPCServer) getMachineInfo(name string) []byte { +func (serv *RPCServer) shutdownInstance(name string) []byte { serv.mu.Lock() defer serv.mu.Unlock() - fuzzer, ok := serv.fuzzers[name] - if !ok { + fuzzer := serv.fuzzers[name] + if fuzzer == nil { return nil } - serv.fuzzers[name] = nil return fuzzer.machineInfo } -- cgit mrf-deployment