From 0d2e4db5f9006a98a5610a406f5e5d4c3c51c29f Mon Sep 17 00:00:00 2001 From: Nikita Pivkin Date: Mon, 14 Aug 2023 13:42:38 +0700 Subject: [PATCH] fix: defer closing body after checking error --- scrape/scrape.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scrape/scrape.go b/scrape/scrape.go index c3be9af106..dc7aa88fad 100644 --- a/scrape/scrape.go +++ b/scrape/scrape.go @@ -97,15 +97,17 @@ func (c *Client) get(urlStr string, a ...interface{}) (*goquery.Document, error) if err != nil { return nil, fmt.Errorf("error parsing URL: %q: %v", urlStr, err) } + resp, err := c.Client.Get(u.String()) if err != nil { return nil, fmt.Errorf("error fetching url %q: %v", u, err) } + defer resp.Body.Close() + if resp.StatusCode == http.StatusNotFound { return nil, fmt.Errorf("received %v response fetching URL %q", resp.StatusCode, u) } - defer resp.Body.Close() doc, err := goquery.NewDocumentFromReader(resp.Body) if err != nil { return nil, fmt.Errorf("error parsing response: %v", err)