diff options
author | 2019-08-25 19:00:59 +0000 | |
---|---|---|
committer | 2019-08-25 19:00:59 +0000 | |
commit | 793bd324999ed301a7437931213dbbb2d766558f (patch) | |
tree | 83adf2d61824b626692b8ae088e5b7182eb3e1f2 /plugin/forward/fuzz.go | |
parent | 01ccbbb12deb35a84c94b646131f43709a51bfef (diff) | |
download | coredns-793bd324999ed301a7437931213dbbb2d766558f.tar.gz coredns-793bd324999ed301a7437931213dbbb2d766558f.tar.zst coredns-793bd324999ed301a7437931213dbbb2d766558f.zip |
plugin/forward: add fuzzing (#3188)
* plugin/forward: add fuzzing
Add fuzz.go for forward
Signed-off-by: Miek Gieben <miek@miek.nl>
* Make it compile
Signed-off-by: Miek Gieben <miek@miek.nl>
Diffstat (limited to 'plugin/forward/fuzz.go')
-rw-r--r-- | plugin/forward/fuzz.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/plugin/forward/fuzz.go b/plugin/forward/fuzz.go new file mode 100644 index 000000000..eb4f78246 --- /dev/null +++ b/plugin/forward/fuzz.go @@ -0,0 +1,34 @@ +// +build gofuzz + +package forward + +import ( + "github.com/coredns/coredns/plugin/pkg/dnstest" + "github.com/coredns/coredns/plugin/pkg/fuzz" + + "github.com/miekg/dns" +) + +var f *Forward + +// abuse init to setup a environment to test against. This start another server to that will +// reflect responses. +func init() { + f = New() + s := dnstest.NewServer(r{}.reflectHandler) + f.proxies = append(f.proxies, NewProxy(s.Addr, "tcp")) + f.proxies = append(f.proxies, NewProxy(s.Addr, "udp")) +} + +// Fuzz fuzzes forward. +func Fuzz(data []byte) int { + return fuzz.Do(f, nil, data) +} + +type r struct{} + +func (r r) reflectHandler(w dns.ResponseWriter, req *dns.Msg) { + m := new(dns.Msg) + m.SetReply(req) + w.WriteMsg(m) +} |