diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2019-04-29 14:32:04 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-05-07 09:09:57 +0200 |
| commit | 85e64702d65a4e91ee71e0c1de540bd2a58d0dbe (patch) | |
| tree | b2c3f97ea2b2c9e5a7b4d71d7da6f35e28ce6da8 | |
| parent | 27544d0fc835af3d9135c8706be95879b7f5a7a2 (diff) | |
syz-fuzzer: fix "all system calls are disabled" handling
Currently we don't fill enabled/disabled calls when we return
"all system calls are disabled" error. As the result manager
does not print any explanation for the error.
Fill in enabled/disabled calls when all calls are disabled.
| -rw-r--r-- | syz-fuzzer/fuzzer.go | 5 | ||||
| -rw-r--r-- | syz-fuzzer/testing.go | 12 |
2 files changed, 9 insertions, 8 deletions
diff --git a/syz-fuzzer/fuzzer.go b/syz-fuzzer/fuzzer.go index b96938091..28d2e849c 100644 --- a/syz-fuzzer/fuzzer.go +++ b/syz-fuzzer/fuzzer.go @@ -163,9 +163,10 @@ func main() { checkArgs.allSandboxes = r.AllSandboxes r.CheckResult, err = checkMachine(checkArgs) if err != nil { - r.CheckResult = &rpctype.CheckArgs{ - Error: err.Error(), + if r.CheckResult == nil { + r.CheckResult = new(rpctype.CheckArgs) } + r.CheckResult.Error = err.Error() } r.CheckResult.Name = *flagName if err := manager.Call("Manager.Check", r.CheckResult, nil); err != nil { diff --git a/syz-fuzzer/testing.go b/syz-fuzzer/testing.go index c193e313a..b2bb3615b 100644 --- a/syz-fuzzer/testing.go +++ b/syz-fuzzer/testing.go @@ -160,11 +160,11 @@ func checkMachine(args *checkArgs) (*rpctype.CheckArgs, error) { } for _, sandbox := range sandboxes { enabledCalls, disabledCalls, err := buildCallList(args.target, args.enabledCalls, sandbox) - if err != nil { - return nil, err - } res.EnabledCalls[sandbox] = enabledCalls res.DisabledCalls[sandbox] = disabledCalls + if err != nil { + return res, err + } } if args.allSandboxes { var enabled []int @@ -291,11 +291,11 @@ func buildCallList(target *prog.Target, enabledCalls []int, sandbox string) ( delete(calls, c) } } - if len(calls) == 0 { - return nil, nil, fmt.Errorf("all system calls are disabled") - } for c := range calls { enabled = append(enabled, c.ID) } + if len(calls) == 0 { + return enabled, disabled, fmt.Errorf("all system calls are disabled") + } return enabled, disabled, nil } |
