diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-09-12 17:14:19 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-09-12 17:38:54 +0200 |
| commit | ad54dc7a6dd1fd2f2f106e59ff234f0a5d4686a2 (patch) | |
| tree | 220ae8f3c87be9dbfdf4bcdc534125ceab146d49 | |
| parent | 01622de2d0ec3b6cc18aef5bcbd5e76dd634116e (diff) | |
syz-manager: cosmetic refactoring
1. Don't duplicate VM name generation.
2. Always "shutdown" fuzzers to not keep stale machine info.
| -rw-r--r-- | syz-manager/manager.go | 9 | ||||
| -rw-r--r-- | 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 } |
