Skip to content
Snippets Groups Projects
fuzz.go 536 B
Newer Older
  • Learn to ignore specific revisions
  • ale's avatar
    ale committed
    // +build fuzz
    
    package dns
    
    
    import "strings"
    
    
    ale's avatar
    ale committed
    func Fuzz(data []byte) int {
    	msg := new(Msg)
    
    	if err := msg.Unpack(data); err != nil {
    		return 0
    	}
    	if _, err := msg.Pack(); err != nil {
    		return 0
    	}
    
    	return 1
    }
    
    func FuzzNewRR(data []byte) int {
    
    	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 {
    
    ale's avatar
    ale committed
    		return 0
    	}
    	return 1
    }