]> Sergey Matveev's repositories - btrtrc.git/blob - metainfo/fuzz.go
metainfo: Add fuzzing func
[btrtrc.git] / metainfo / fuzz.go
1 // +build gofuzz
2
3 package metainfo
4
5 import (
6         "github.com/anacrolix/torrent/bencode"
7 )
8
9 func Fuzz(b []byte) int {
10         var mi MetaInfo
11         err := bencode.Unmarshal(b, &mi)
12         if err != nil {
13                 return 0
14         }
15         _, err = bencode.Marshal(mi)
16         if err != nil {
17                 panic(err)
18         }
19         info, err := mi.UnmarshalInfo()
20         if err != nil {
21                 return 0
22         }
23         _, err = bencode.Marshal(info)
24         if err != nil {
25                 panic(err)
26         }
27         return 1
28 }