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>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
5ef3713c9f
commit
7b5b9f5ce2
@@ -1477,7 +1477,9 @@ func mockLocalAPI(t *testing.T, whoIs map[string]*apitype.WhoIsResponse, self fu
|
|||||||
http.Error(w, "invalid JSON body", http.StatusBadRequest)
|
http.Error(w, "invalid JSON body", http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
metricCapture(metricNames[0].Name)
|
if metricCapture != nil && len(metricNames) > 0 {
|
||||||
|
metricCapture(metricNames[0].Name)
|
||||||
|
}
|
||||||
writeJSON(w, struct{}{})
|
writeJSON(w, struct{}{})
|
||||||
return
|
return
|
||||||
case "/localapi/v0/logout":
|
case "/localapi/v0/logout":
|
||||||
|
|||||||
Reference in New Issue
Block a user