From 4d1df73af9a6d40d3111e3f2a7dfb9f138fbde4b Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Thu, 18 May 2017 16:08:43 +0200 Subject: csource: force enable tun flag when required --- prog/analysis.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'prog') diff --git a/prog/analysis.go b/prog/analysis.go index 5b786c753..67a254273 100644 --- a/prog/analysis.go +++ b/prog/analysis.go @@ -260,3 +260,29 @@ func sanitizeCall(c *Call) { } } } + +func RequiresTun(p *Prog) bool { + for _, c := range p.Calls { + switch c.Meta.CallName { + case "syz_emit_ethernet": + return true + case "syz_extract_tcp_res": + return true + } + } + return false +} + +func RequiresBitmasks(p *Prog) bool { + result := false + for _, c := range p.Calls { + foreachArg(c, func(arg, _ *Arg, _ *[]*Arg) { + if arg.Kind == ArgConst { + if arg.Type.BitfieldOffset() != 0 || arg.Type.BitfieldLength() != 0 { + result = true + } + } + }) + } + return result +} -- cgit mrf-deployment