aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-09-12 17:14:19 +0200
committerDmitry Vyukov <dvyukov@google.com>2020-09-12 17:38:54 +0200
commitad54dc7a6dd1fd2f2f106e59ff234f0a5d4686a2 (patch)
tree220ae8f3c87be9dbfdf4bcdc534125ceab146d49
parent01622de2d0ec3b6cc18aef5bcbd5e76dd634116e (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.go9
-rw-r--r--syz-manager/rpc.go7
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
}