From d23e7ffca69684b64745c7b3bdab8dcbd61e6d4d Mon Sep 17 00:00:00 2001 From: ze0s <43699394+zze0s@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:05:48 +0200 Subject: [PATCH] fix(downloads): handle panic in error check (#1782) --- internal/releasedownload/download_service.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/releasedownload/download_service.go b/internal/releasedownload/download_service.go index 43f956e..9df0ca9 100644 --- a/internal/releasedownload/download_service.go +++ b/internal/releasedownload/download_service.go @@ -9,6 +9,7 @@ import ( "net" "net/http" "net/http/cookiejar" + "net/url" "os" "strconv" "strings" @@ -189,9 +190,16 @@ func retryableRequest(httpClient *http.Client, req *http.Request, r *domain.Rele // Get the data resp, err := httpClient.Do(req) if err != nil { - if errors.As(err, net.OpError{}) { + var opErr *net.OpError + if errors.As(err, &opErr) { return retry.Unrecoverable(errors.Wrap(err, "issue from proxy")) } + + var urlErr *url.Error + if errors.As(err, &urlErr) { + return retry.Unrecoverable(errors.Wrap(err, "url parse error")) + } + return errors.Wrap(err, "error downloading file") } defer resp.Body.Close()