Skip to content

Commit 6d0edbe

Browse files
juliusvstuartnelson3
authored andcommitted
Fix a bunch of unhandled errors (prometheus#1501)
...as discovered by "gosec" (many other ones reported, but not all make a lot of sense to fix). Signed-off-by: Julius Volz <[email protected]>
1 parent 216aa78 commit 6d0edbe

File tree

13 files changed

+70
-33
lines changed

13 files changed

+70
-33
lines changed

api/api.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ func init() {
5959
numReceivedAlerts.WithLabelValues("firing")
6060
numReceivedAlerts.WithLabelValues("resolved")
6161

62-
prometheus.Register(numReceivedAlerts)
63-
prometheus.Register(numInvalidAlerts)
62+
prometheus.MustRegister(numReceivedAlerts)
63+
prometheus.MustRegister(numInvalidAlerts)
6464
}
6565

6666
var corsHeaders = map[string]string{

cli/check_config.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ func (c *checkConfigCmd) checkConfig(ctx *kingpin.ParseContext) error {
4949

5050
func CheckConfig(args []string) error {
5151
if len(args) == 0 {
52-
stat, _ := os.Stdin.Stat()
52+
stat, err := os.Stdin.Stat()
53+
if err != nil {
54+
kingpin.Fatalf("Failed to stat standard input: %v", err)
55+
}
5356
if (stat.Mode() & os.ModeCharDevice) != 0 {
5457
kingpin.Fatalf("Failed to read from standard input")
5558
}

cli/format/format_extended.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ func (formatter *ExtendedFormatter) FormatSilences(silences []types.Silence) err
5454
silence.Comment,
5555
)
5656
}
57-
w.Flush()
58-
return nil
57+
return w.Flush()
5958
}
6059

6160
func (formatter *ExtendedFormatter) FormatAlerts(alerts []*client.ExtendedAlert) error {
@@ -73,8 +72,7 @@ func (formatter *ExtendedFormatter) FormatAlerts(alerts []*client.ExtendedAlert)
7372
alert.GeneratorURL,
7473
)
7574
}
76-
w.Flush()
77-
return nil
75+
return w.Flush()
7876
}
7977

8078
func (formatter *ExtendedFormatter) FormatConfig(status *client.ServerStatus) error {

cli/format/format_simple.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ func (formatter *SimpleFormatter) FormatSilences(silences []types.Silence) error
5252
silence.Comment,
5353
)
5454
}
55-
w.Flush()
56-
return nil
55+
return w.Flush()
5756
}
5857

5958
func (formatter *SimpleFormatter) FormatAlerts(alerts []*client.ExtendedAlert) error {
@@ -69,8 +68,7 @@ func (formatter *SimpleFormatter) FormatAlerts(alerts []*client.ExtendedAlert) e
6968
alert.Annotations["summary"],
7069
)
7170
}
72-
w.Flush()
73-
return nil
71+
return w.Flush()
7472
}
7573

7674
func (formatter *SimpleFormatter) FormatConfig(status *client.ServerStatus) error {

cli/silence_query.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,9 @@ func (c *silenceQueryCmd) query(ctx context.Context, _ *kingpin.ParseContext) er
148148
if !found {
149149
return errors.New("unknown output formatter")
150150
}
151-
formatter.FormatSilences(displaySilences)
151+
if err := formatter.FormatSilences(displaySilences); err != nil {
152+
return fmt.Errorf("error formatting silences: %v", err)
153+
}
152154
}
153155
return nil
154156
}

cli/silence_update.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,9 @@ func (c *silenceUpdateCmd) update(ctx context.Context, _ *kingpin.ParseContext)
118118
if !found {
119119
return fmt.Errorf("unknown output formatter")
120120
}
121-
formatter.FormatSilences(updatedSilences)
121+
if err := formatter.FormatSilences(updatedSilences); err != nil {
122+
return fmt.Errorf("error formatting silences: %v", err)
123+
}
122124
}
123125
return nil
124126
}

client/client.go

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,10 @@ type httpStatusAPI struct {
138138
func (h *httpStatusAPI) Get(ctx context.Context) (*ServerStatus, error) {
139139
u := h.client.URL(epStatus, nil)
140140

141-
req, _ := http.NewRequest(http.MethodGet, u.String(), nil)
141+
req, err := http.NewRequest(http.MethodGet, u.String(), nil)
142+
if err != nil {
143+
return nil, fmt.Errorf("error creating request: %v", err)
144+
}
142145

143146
_, body, err := h.client.Do(ctx, req)
144147
if err != nil {
@@ -207,7 +210,10 @@ func (h *httpAlertAPI) List(ctx context.Context, filter, receiver string, silenc
207210
params.Add("receiver", receiver)
208211
u.RawQuery = params.Encode()
209212

210-
req, _ := http.NewRequest(http.MethodGet, u.String(), nil)
213+
req, err := http.NewRequest(http.MethodGet, u.String(), nil)
214+
if err != nil {
215+
return nil, fmt.Errorf("error creating request: %v", err)
216+
}
211217

212218
_, body, err := h.client.Do(ctx, req)
213219
if err != nil {
@@ -228,9 +234,12 @@ func (h *httpAlertAPI) Push(ctx context.Context, alerts ...Alert) error {
228234
return err
229235
}
230236

231-
req, _ := http.NewRequest(http.MethodPost, u.String(), &buf)
237+
req, err := http.NewRequest(http.MethodPost, u.String(), &buf)
238+
if err != nil {
239+
return fmt.Errorf("error creating request: %v", err)
240+
}
232241

233-
_, _, err := h.client.Do(ctx, req)
242+
_, _, err = h.client.Do(ctx, req)
234243
return err
235244
}
236245

@@ -260,7 +269,10 @@ func (h *httpSilenceAPI) Get(ctx context.Context, id string) (*types.Silence, er
260269
"id": id,
261270
})
262271

263-
req, _ := http.NewRequest(http.MethodGet, u.String(), nil)
272+
req, err := http.NewRequest(http.MethodGet, u.String(), nil)
273+
if err != nil {
274+
return nil, fmt.Errorf("error creating request: %v", err)
275+
}
264276

265277
_, body, err := h.client.Do(ctx, req)
266278
if err != nil {
@@ -278,9 +290,12 @@ func (h *httpSilenceAPI) Expire(ctx context.Context, id string) error {
278290
"id": id,
279291
})
280292

281-
req, _ := http.NewRequest(http.MethodDelete, u.String(), nil)
293+
req, err := http.NewRequest(http.MethodDelete, u.String(), nil)
294+
if err != nil {
295+
return fmt.Errorf("error creating request: %v", err)
296+
}
282297

283-
_, _, err := h.client.Do(ctx, req)
298+
_, _, err = h.client.Do(ctx, req)
284299
return err
285300
}
286301

@@ -292,7 +307,10 @@ func (h *httpSilenceAPI) Set(ctx context.Context, sil types.Silence) (string, er
292307
return "", err
293308
}
294309

295-
req, _ := http.NewRequest(http.MethodPost, u.String(), &buf)
310+
req, err := http.NewRequest(http.MethodPost, u.String(), &buf)
311+
if err != nil {
312+
return "", fmt.Errorf("error creating request: %v", err)
313+
}
296314

297315
_, body, err := h.client.Do(ctx, req)
298316
if err != nil {
@@ -315,7 +333,10 @@ func (h *httpSilenceAPI) List(ctx context.Context, filter string) ([]*types.Sile
315333
}
316334
u.RawQuery = params.Encode()
317335

318-
req, _ := http.NewRequest(http.MethodGet, u.String(), nil)
336+
req, err := http.NewRequest(http.MethodGet, u.String(), nil)
337+
if err != nil {
338+
return nil, fmt.Errorf("error creating request: %v", err)
339+
}
319340

320341
_, body, err := h.client.Do(ctx, req)
321342
if err != nil {

cmd/alertmanager/main.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,9 @@ func main() {
267267
ctx, cancel := context.WithTimeout(context.Background(), *settleTimeout)
268268
defer func() {
269269
cancel()
270-
peer.Leave(10 * time.Second)
270+
if err := peer.Leave(10 * time.Second); err != nil {
271+
level.Warn(logger).Log("msg", "unable to leave gossip mesh", "err", err)
272+
}
271273
}()
272274
go peer.Settle(ctx, *gossipInterval*10)
273275
}

examples/webhook/echo.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222
)
2323

2424
func main() {
25-
http.ListenAndServe(":5001", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
25+
log.Fatal(http.ListenAndServe(":5001", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
2626
b, err := ioutil.ReadAll(r.Body)
2727
if err != nil {
2828
panic(err)
@@ -33,5 +33,5 @@ func main() {
3333
panic(err)
3434
}
3535
log.Println(buf.String())
36-
}))
36+
})))
3737
}

inhibit/inhibit.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ func (ih *Inhibitor) Run() {
116116
runCancel()
117117
})
118118

119-
g.Run()
119+
if err := g.Run(); err != nil {
120+
level.Warn(ih.logger).Log("msg", "error running inhibitor", "err", err)
121+
}
120122
}
121123

122124
// Stop the Inhibitor's background processing.

0 commit comments

Comments
 (0)