aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-12-07 12:12:27 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-12-07 12:12:27 +0100
commit413e41473838fb74ccc081784afd6ddbbd44b797 (patch)
treef93bf5e1dfe64e2add20366400023144977aa094
parent742f85bb22809a5bec027ebec811c2b7de20796f (diff)
tools/syz-trace2syz: add go-fuzz fuzzer
Inputs like "2__R" or "3_F T.3.3l" make traze2syz hang infinitely consuming all machine memory. Need to fix all crashes over time.
-rw-r--r--tools/syz-trace2syz/proggen/fuzz.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/syz-trace2syz/proggen/fuzz.go b/tools/syz-trace2syz/proggen/fuzz.go
new file mode 100644
index 000000000..d80acb4f0
--- /dev/null
+++ b/tools/syz-trace2syz/proggen/fuzz.go
@@ -0,0 +1,29 @@
+// Copyright 2018 syzkaller project authors. All rights reserved.
+// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+package proggen
+
+import (
+ "github.com/google/syzkaller/prog"
+ _ "github.com/google/syzkaller/sys"
+)
+
+var target = func() *prog.Target {
+ target, err := prog.GetTarget("linux", "amd64")
+ if err != nil {
+ panic(err)
+ }
+ target.ConstMap = make(map[string]uint64)
+ for _, c := range target.Consts {
+ target.ConstMap[c.Name] = c.Value
+ }
+ return target
+}()
+
+func Fuzz(data []byte) int {
+ progs, err := ParseData(data, target)
+ if err != nil {
+ return 0
+ }
+ return len(progs)
+}