aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-01-13 17:27:50 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-01-14 16:23:39 +0100
commit90c33e5d0cb5c5c3cec65f12974d5fd5c714f5a3 (patch)
treea6a2bca0e38d899b06b23b8bcd6c88cb1e303005
parentc9e7aeaef64e4e16a32baac1c66d772afbaf8ed0 (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.go5
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
}