1// +build fuzz
2
3package dns
4
5import "strings"
6
7func Fuzz(data []byte) int {
8	msg := new(Msg)
9
10	if err := msg.Unpack(data); err != nil {
11		return 0
12	}
13	if _, err := msg.Pack(); err != nil {
14		return 0
15	}
16
17	return 1
18}
19
20func FuzzNewRR(data []byte) int {
21	str := string(data)
22	// Do not fuzz lines that include the $INCLUDE keyword and hint the fuzzer
23	// at avoiding them.
24	// See GH#1025 for context.
25	if strings.Contains(strings.ToUpper(str), "$INCLUDE") {
26		return -1
27	}
28	if _, err := NewRR(str); err != nil {
29		return 0
30	}
31	return 1
32}
33