Skip to content

Commit 1c509d9

Browse files
authored
ensure we don't leak resp.Body on fulcio prober (#496)
Signed-off-by: Bob Callaway <bcallaway@google.com> Signed-off-by: Bob Callaway <bcallaway@google.com>
1 parent bdbd3b8 commit 1c509d9

1 file changed

Lines changed: 7 additions & 6 deletions

File tree

cmd/prober/write.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ func fulcioWriteEndpoint(ctx context.Context) error {
100100
if err != nil {
101101
fmt.Printf("error requesting cert: %v\n", err.Error())
102102
}
103+
defer resp.Body.Close()
103104

104105
// Export data to prometheus
105106
exportDataToPrometheus(resp, fulcioURL, endpoint, POST, latency)
@@ -128,17 +129,13 @@ func rekorWriteEndpoint(ctx context.Context) error {
128129
retryableClient.RetryMax = int(retries)
129130
resp, err := retryableClient.Do(req)
130131
latency := time.Since(t).Milliseconds()
131-
exportDataToPrometheus(resp, rekorURL, endpoint, POST, latency)
132132
if err != nil {
133133
return fmt.Errorf("error adding entry: %w", err)
134134
}
135+
defer resp.Body.Close()
136+
exportDataToPrometheus(resp, rekorURL, endpoint, POST, latency)
135137

136138
// If entry was added successfully, we should verify it
137-
rekorClient, err := rclient.GetRekorClient(rekorURL, rclient.WithUserAgent(fmt.Sprintf("Sigstore_Scaffolding_Prober/%s", versionInfo.GitVersion)))
138-
if err != nil {
139-
return fmt.Errorf("creating rekor client: %w", err)
140-
}
141-
defer resp.Body.Close()
142139
var logEntry models.LogEntry
143140
err = json.NewDecoder(resp.Body).Decode(&logEntry)
144141
if err != nil {
@@ -150,6 +147,10 @@ func rekorWriteEndpoint(ctx context.Context) error {
150147
break
151148
}
152149
verified := "true"
150+
rekorClient, err := rclient.GetRekorClient(rekorURL, rclient.WithUserAgent(fmt.Sprintf("Sigstore_Scaffolding_Prober/%s", versionInfo.GitVersion)))
151+
if err != nil {
152+
return fmt.Errorf("creating rekor client: %w", err)
153+
}
153154
if err = cosign.VerifyTLogEntry(ctx, rekorClient, &logEntryAnon); err != nil {
154155
verified = "false"
155156
}

0 commit comments

Comments
 (0)