fuzz.go 536 B

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