Fix file/fuzz.go build and docs in Makefile.fuzz Each plugin can add a fuzz.go to join the fuzzing craze. pkg/fuzz/do.go could be made a lot smarter, but is probably good enough for starters. $ make -f Makefile.fuzz <plugin> will build with go-fuzz-build and then execute a go-fuzz run. Each plugin's fuzz run uses a per-plugin directory to store the fuzz data.
48 lines
1.6 KiB
Go
48 lines
1.6 KiB
Go
package file
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/coredns/coredns/plugin/pkg/fuzz"
|
|
"github.com/coredns/coredns/plugin/test"
|
|
)
|
|
|
|
// Fuzz fuzzes file.
|
|
func Fuzz(data []byte) int {
|
|
name := "miek.nl."
|
|
zone, _ := Parse(strings.NewReader(fuzzMiekNL), name, "stdin", 0)
|
|
f := File{Next: test.ErrorHandler(), Zones: Zones{Z: map[string]*Zone{name: zone}, Names: []string{name}}}
|
|
|
|
return fuzz.Do(f, data)
|
|
}
|
|
|
|
const fuzzMiekNL = `
|
|
$TTL 30M
|
|
$ORIGIN miek.nl.
|
|
@ IN SOA linode.atoom.net. miek.miek.nl. (
|
|
1282630057 ; Serial
|
|
4H ; Refresh
|
|
1H ; Retry
|
|
7D ; Expire
|
|
4H ) ; Negative Cache TTL
|
|
IN NS linode.atoom.net.
|
|
IN NS ns-ext.nlnetlabs.nl.
|
|
IN NS omval.tednet.nl.
|
|
IN NS ext.ns.whyscream.net.
|
|
|
|
IN MX 1 aspmx.l.google.com.
|
|
IN MX 5 alt1.aspmx.l.google.com.
|
|
IN MX 5 alt2.aspmx.l.google.com.
|
|
IN MX 10 aspmx2.googlemail.com.
|
|
IN MX 10 aspmx3.googlemail.com.
|
|
|
|
IN A 139.162.196.78
|
|
IN AAAA 2a01:7e00::f03c:91ff:fef1:6735
|
|
|
|
a IN A 139.162.196.78
|
|
IN AAAA 2a01:7e00::f03c:91ff:fef1:6735
|
|
www IN CNAME a
|
|
archive IN CNAME a
|
|
|
|
srv IN SRV 10 10 8080 a.miek.nl.
|
|
mx IN MX 10 a.miek.nl.`
|