fuzz.go 552 B

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