From 0180de0c723afa7d57a55001af65db373589774e Mon Sep 17 00:00:00 2001 From: Sepehrdad Sh <26747519+sepehrdaddev@users.noreply.github.com> Date: Tue, 21 Nov 2023 13:22:54 +0100 Subject: [PATCH] fix makefile cleanup, fix FuzzServer with Fuzz_FORKS Signed-off-by: Sepehrdad Sh <26747519+sepehrdaddev@users.noreply.github.com> --- fuzz/Makefile | 2 +- fuzz/fuzz_targets/FuzzServer.go | 30 +++++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/fuzz/Makefile b/fuzz/Makefile index 57a0e8d018..1145d4f852 100644 --- a/fuzz/Makefile +++ b/fuzz/Makefile @@ -59,4 +59,4 @@ fuzz: $(FUZZ_TARGETS:=.out) ## run all fuzz tests done clean: ## clean temporary files and directories - $(RM) $(PREFIX)/*.out $(PREFIX)/*.h $(PREFIX)/main.*.go + $(RM) $(PREFIX)/*.out $(PREFIX)/*.a $(PREFIX)/*.h $(PREFIX)/main.*.go diff --git a/fuzz/fuzz_targets/FuzzServer.go b/fuzz/fuzz_targets/FuzzServer.go index e414ac26d4..e13233a4d6 100644 --- a/fuzz/fuzz_targets/FuzzServer.go +++ b/fuzz/fuzz_targets/FuzzServer.go @@ -13,11 +13,26 @@ import ( "github.com/zalando/skipper/config" ) -var initialized = false +var ( + initialized = false + address = "" +) + +func findAddress() (string, error) { + l, err := net.ListenTCP("tcp6", &net.TCPAddr{}) + + if err != nil { + return "", err + } + + defer l.Close() + + return l.Addr().String(), nil +} func connect(host string) (net.Conn, error) { for i := 0; i < 15; i++ { - conn, err := net.Dial("tcp", host) + conn, err := net.Dial("tcp6", host) if err != nil { continue @@ -31,20 +46,29 @@ func connect(host string) (net.Conn, error) { func FuzzServer(data []byte) int { if !initialized { + addr, err := findAddress() + + if err != nil { + log.Printf("failed to find address: %v\n", err) + return -1 + } + cfg := config.NewConfig() cfg.InlineRoutes = `r: * -> status(200) -> inlineContent("ok") -> ` cfg.ApplicationLogLevel = logrus.PanicLevel cfg.AccessLogDisabled = true cfg.ApplicationLog = "/dev/null" + cfg.Address = addr go func() { log.Fatal(skipper.Run(cfg.ToOptions())) }() initialized = true + address = cfg.Address } - conn, err := connect("localhost:9090") + conn, err := connect(address) if err != nil { log.Printf("failed to dial: %v\n", err)