client/web: fix nil metricCapture crash in mockLocalAPI

The upload-client-metrics handler called metricCapture without
checking if it was nil or if the metrics slice was empty. Most
tests pass nil for metricCapture, so if a metrics upload races
in during the test, it panics.

Fixes #19252

Change-Id: Ib904d1fe6779067dc2a153d1680b8f50cba9c773
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
main
Brad Fitzpatrick 2 weeks ago committed by Brad Fitzpatrick
parent 5ef3713c9f
commit 7b5b9f5ce2
  1. 2
      client/web/web_test.go

@ -1477,7 +1477,9 @@ func mockLocalAPI(t *testing.T, whoIs map[string]*apitype.WhoIsResponse, self fu
http.Error(w, "invalid JSON body", http.StatusBadRequest)
return
}
if metricCapture != nil && len(metricNames) > 0 {
metricCapture(metricNames[0].Name)
}
writeJSON(w, struct{}{})
return
case "/localapi/v0/logout":

Loading…
Cancel
Save