From 40eab7a196d1397aa407c5c9b726fc48b1a9e9e8 Mon Sep 17 00:00:00 2001 From: chantra Date: Wed, 9 Oct 2019 23:12:53 -0700 Subject: [PATCH] [fuzzer] Avoid fuzzing parser with line that contains "$INCLUDE" (#1026) Fixes #1025 ``` GO111MODULE=off make -f Makefile.fuzz build go-fuzz -bin=dns-fuzz.zip -workdir=fuzz -func Fuzz GO111MODULE=off make -f Makefile.fuzz build-rr go-fuzz -bin=dns-fuzz.zip -workdir=fuzz -func FuzzNewRR ``` --- fuzz.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/fuzz.go b/fuzz.go index a8a09184..57410acd 100644 --- a/fuzz.go +++ b/fuzz.go @@ -2,6 +2,8 @@ package dns +import "strings" + func Fuzz(data []byte) int { msg := new(Msg) @@ -16,7 +18,14 @@ func Fuzz(data []byte) int { } func FuzzNewRR(data []byte) int { - if _, err := NewRR(string(data)); err != nil { + str := string(data) + // Do not fuzz lines that include the $INCLUDE keyword and hint the fuzzer + // at avoiding them. + // See GH#1025 for context. + if strings.Contains(strings.ToUpper(str), "$INCLUDE") { + return -1 + } + if _, err := NewRR(str); err != nil { return 0 } return 1