Commit 14f8b5d7 authored by Miek Gieben's avatar Miek Gieben Committed by GitHub

Fuzzing: add more fuzzing targets (#2402)

* Add more fuzzing
Signed-off-by: default avatarMiek Gieben <miek@miek.nl>

* More fuzzing targets
Signed-off-by: default avatarMiek Gieben <miek@miek.nl>

* Fuzzing: add more fuzzing targets

Also add Corefile fuzzing.
Signed-off-by: default avatarMiek Gieben <miek@miek.nl>
parent 235aac32
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
# e.g. # e.g.
# #
# make -f Makefile.fuzz proxy # make -f Makefile.fuzz proxy
# #
# Each plugin that wants to join the fuzzing fray only needs to add a fuzz.go that calls # Each plugin that wants to join the fuzzing fray only needs to add a fuzz.go that calls
# the plugins's ServeDNS and used the plugin/pkg/fuzz for the Do function. # the plugins's ServeDNS and used the plugin/pkg/fuzz for the Do function.
# #
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#$ go get github.com/dvyukov/go-fuzz/go-fuzz #$ go get github.com/dvyukov/go-fuzz/go-fuzz
#$ go get github.com/dvyukov/go-fuzz/go-fuzz-build #$ go get github.com/dvyukov/go-fuzz/go-fuzz-build
REPO:="github.com/coredns/coredns/plugin" REPO:="github.com/coredns/coredns"
FUZZ:=$(dir $(wildcard plugin/*/fuzz.go)) # plugin/cache/ FUZZ:=$(dir $(wildcard plugin/*/fuzz.go)) # plugin/cache/
PLUGINS:=$(foreach f,$(FUZZ),$(subst plugin, ,$(f:/=))) # > /cache PLUGINS:=$(foreach f,$(FUZZ),$(subst plugin, ,$(f:/=))) # > /cache
...@@ -25,9 +25,15 @@ echo: ...@@ -25,9 +25,15 @@ echo:
.PHONY: $(PLUGINS) .PHONY: $(PLUGINS)
$(PLUGINS): echo $(PLUGINS): echo
go-fuzz-build -tags fuzz $(REPO)/$(@) go-fuzz-build -tags fuzz $(REPO)/plugin/$(@)
go-fuzz -bin=./$(@)-fuzz.zip -workdir=fuzz/$(@) go-fuzz -bin=./$(@)-fuzz.zip -workdir=fuzz/$(@)
.PHONY: corefile
corefile:
go-fuzz-build -tags fuzz $(REPO)/test
go-fuzz -bin=./test-fuzz.zip -workdir=fuzz/$(@)
.PHONY: clean .PHONY: clean
clean: clean:
rm *-fuzz.zip rm *-fuzz.zip
// +build fuzz
package chaos
import (
"github.com/coredns/coredns/plugin/pkg/fuzz"
)
// Fuzz fuzzes cache.
func Fuzz(data []byte) int {
c := Chaos{}
return fuzz.Do(c, data)
}
// +build fuzz
package whoami
import (
"github.com/coredns/coredns/plugin/pkg/fuzz"
)
// Fuzz fuzzes cache.
func Fuzz(data []byte) int {
w := Whoami{}
return fuzz.Do(w, data)
}
// +build fuzz
package test
// Fuzz fuzzes a corefile.
func Fuzz(data []byte) int {
_, _, _, err := CoreDNSServerAndPorts(string(data))
if err != nil {
return 1
}
return 0
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment