From ee2ad1d1fe55a3823311267f39e8b14e8b0c4c68 Mon Sep 17 00:00:00 2001 From: Walter Fender Date: Tue, 2 Jul 2019 14:28:55 -0700 Subject: [PATCH] Making sure we handle error on http.NewRequest(). http.NewRequest can return an error. (Eg. error parsing url). This will cause us to have a nil req object. That in turn will become a SIGSEGV when we set the context. --- .../k8s.io/apiserver/pkg/registry/generic/rest/streamer.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/streamer.go b/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/streamer.go index 8bd9d9c9f11..562288a3aee 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/streamer.go +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/streamer.go @@ -19,6 +19,7 @@ package rest import ( "context" "errors" + "fmt" "io" "net/http" "net/url" @@ -66,6 +67,9 @@ func (s *LocationStreamer) InputStream(ctx context.Context, apiVersion, acceptHe CheckRedirect: s.RedirectChecker, } req, err := http.NewRequest("GET", s.Location.String(), nil) + if err != nil { + return nil, false, "", fmt.Errorf("failed to construct request for %s, got %v", s.Location.String(), err) + } // Pass the parent context down to the request to ensure that the resources // will be release properly. req = req.WithContext(ctx)