internal/worker: fix govulncheck command error handling logic The fix follows the logic in cmd/govulncheck_sandbox/govulncheck_sandbox.go. Change-Id: Id53d0107159acc7378a67076b7e06957d865a507 Reviewed-on: https://go-review.googlesource.com/c/pkgsite-metrics/+/477183 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Zvonimir Pavlinovic <zpavlinovic@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/internal/worker/govulncheck_scan.go b/internal/worker/govulncheck_scan.go index 1092547..ea72890 100644 --- a/internal/worker/govulncheck_scan.go +++ b/internal/worker/govulncheck_scan.go
@@ -435,8 +435,10 @@ govulncheckCmd := exec.Command(govulncheckPath, "-json", pattern) govulncheckCmd.Dir = tempDir output, err := govulncheckCmd.Output() - if e := (&exec.ExitError{}); !errors.As(err, &e) && e.ProcessState.ExitCode() != 3 { - return nil, err + if err != nil { + if e := (&exec.ExitError{}); !errors.As(err, &e) || e.ProcessState.ExitCode() != 3 { + return nil, err + } } stats.scanSeconds = time.Since(start).Seconds() stats.scanMemory = uint64(govulncheckCmd.ProcessState.SysUsage().(*syscall.Rusage).Maxrss)