From 1e8aea15f8d25d2a8f3adb0abe4e04c0bf7f2f03 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Fri, 13 Jul 2018 20:24:31 -0400 Subject: [PATCH] empty result fix Signed-off-by: Jess Frazelle --- k8scan/main.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/k8scan/main.go b/k8scan/main.go index 3147163..f2ab351 100644 --- a/k8scan/main.go +++ b/k8scan/main.go @@ -466,8 +466,14 @@ func doMasscan() ([]MasscanResult, error) { } m := []MasscanResult{} + + // Return early if empty. + if len(b) <= 0 { + return m, nil + } + if err := json.Unmarshal(b, &m); err != nil { - return nil, fmt.Errorf("unmarshal json failed: %v", err) + return nil, fmt.Errorf("unmarshal json failed: %v\nbody: %s", err, string(b)) } logrus.Debugf("masscan result: %#v", m) @@ -480,5 +486,11 @@ func cleanMasscanOutputFile(file string) ([]byte, error) { if err != nil { return nil, err } - return []byte(strings.TrimSuffix(strings.TrimSpace(string(b)), ",\n]") + "]"), nil + + s := strings.TrimSpace(string(b)) + if len(s) <= 0 { + return nil, nil + } + + return []byte(strings.TrimSuffix(s, ",\n]") + "]"), nil }