From 90c33e5d0cb5c5c3cec65f12974d5fd5c714f5a3 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Sat, 13 Jan 2018 17:27:50 +0100 Subject: 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. --- syz-manager/manager.go | 5 +++++ 1 file changed, 5 insertions(+) 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 } -- cgit mrf-deployment