diff --git a/pkg/externalIpProvider/plain/plain.go b/pkg/externalIpProvider/plain/plain.go index 3fed9ad..cc0b112 100644 --- a/pkg/externalIpProvider/plain/plain.go +++ b/pkg/externalIpProvider/plain/plain.go @@ -2,6 +2,7 @@ package externalIpProvider import ( "errors" + "io" "net" "net/http" "net/url" @@ -40,12 +41,15 @@ func (p *ExternalIpProviderImplPlain) GetExternalIp() (net.IP, error) { } if res.StatusCode != 200 { + res.Body.Close() return nil, errors.New("unexpected status code") } - responseBody := make([]byte, res.ContentLength) - res.Body.Read(responseBody) - defer res.Body.Close() + responseBody, err := io.ReadAll(res.Body) + res.Body.Close() + if err != nil { + return nil, err + } parsedIp := net.ParseIP(string(responseBody)) if parsedIp == nil {