]> Sergey Matveev's repositories - btrtrc.git/commitdiff
metainfo: Add fuzzing func
authorMatt Joiner <anacrolix@gmail.com>
Sun, 18 Aug 2019 06:51:20 +0000 (16:51 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Sun, 18 Aug 2019 06:51:20 +0000 (16:51 +1000)
metainfo/fuzz.go [new file with mode: 0644]

diff --git a/metainfo/fuzz.go b/metainfo/fuzz.go
new file mode 100644 (file)
index 0000000..60ece52
--- /dev/null
@@ -0,0 +1,28 @@
+// +build gofuzz
+
+package metainfo
+
+import (
+       "github.com/anacrolix/torrent/bencode"
+)
+
+func Fuzz(b []byte) int {
+       var mi MetaInfo
+       err := bencode.Unmarshal(b, &mi)
+       if err != nil {
+               return 0
+       }
+       _, err = bencode.Marshal(mi)
+       if err != nil {
+               panic(err)
+       }
+       info, err := mi.UnmarshalInfo()
+       if err != nil {
+               return 0
+       }
+       _, err = bencode.Marshal(info)
+       if err != nil {
+               panic(err)
+       }
+       return 1
+}