diff --git a/images/decode.go b/images/decode.go index 140adf16d..dc1315909 100644 --- a/images/decode.go +++ b/images/decode.go @@ -48,6 +48,10 @@ func DecodeFromURL(path string) (image.Image, error) { } }() + if res.StatusCode >= 400 { + return nil, errors.New(http.StatusText(res.StatusCode)) + } + bodyBytes, err := ioutil.ReadAll(res.Body) if err != nil { return nil, err diff --git a/images/decode_test.go b/images/decode_test.go index 5cccf5cd8..7df58ee1e 100644 --- a/images/decode_test.go +++ b/images/decode_test.go @@ -150,6 +150,14 @@ func TestDecodeFromURL(t *testing.T) { } } +func TestDecodeFromURL_WithErrors(t *testing.T) { + s := httptest.NewServer(http.FileServer(http.Dir(path))) + defer s.Close() + + _, err := DecodeFromURL("https://doesnt-exist.com") + require.Error(t, err) +} + func TestGetType(t *testing.T) { cs := []struct { Buf []byte