diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-01-13 17:27:50 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-01-14 16:23:39 +0100 |
| commit | 90c33e5d0cb5c5c3cec65f12974d5fd5c714f5a3 (patch) | |
| tree | a6a2bca0e38d899b06b23b8bcd6c88cb1e303005 | |
| parent | c9e7aeaef64e4e16a32baac1c66d772afbaf8ed0 (diff) | |
syz-manager: check new inputs from fuzzers
Fuzzer must not send broken programs, but we see such cases episodically.
Reason unknown. But at least prevent manager from crashing later.
| -rw-r--r-- | syz-manager/manager.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/syz-manager/manager.go b/syz-manager/manager.go index 3e40bccb8..85546a2e0 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -948,6 +948,11 @@ func (mgr *Manager) NewInput(a *NewInputArgs, r *int) error { Fatalf("fuzzer %v is not connected", a.Name) } + if _, err := mgr.target.Deserialize(a.RpcInput.Prog); err != nil { + // This should not happen, but we see such cases episodically, reason unknown. + Logf(0, "failed to deserialize program from fuzzer: %v\n%s", err, a.RpcInput.Prog) + return nil + } if !cover.SignalNew(mgr.corpusSignal, a.Signal) { return nil } |
