From 29ff69fd83ddd51821e9d501365c5247ed1986ed Mon Sep 17 00:00:00 2001 From: Michail Kargakis Date: Thu, 28 Apr 2016 11:14:11 +0200 Subject: [PATCH] kubectl: avoid panic with nil gvk The decoder will return a nil gvk in case it errors out and getting the version out of that gvk naturally will panic. Bail out as soon as we can check that the error is non-nil. kubectl edit was the primary victim. --- pkg/kubectl/resource/mapper.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/kubectl/resource/mapper.go b/pkg/kubectl/resource/mapper.go index 27e85043b0e..2b9334906a7 100644 --- a/pkg/kubectl/resource/mapper.go +++ b/pkg/kubectl/resource/mapper.go @@ -52,6 +52,9 @@ type Mapper struct { func (m *Mapper) InfoForData(data []byte, source string) (*Info, error) { versions := &runtime.VersionedObjects{} _, gvk, err := m.Decode(data, nil, versions) + if err != nil { + return nil, fmt.Errorf("unable to decode %q: %v", source, err) + } var obj runtime.Object var versioned runtime.Object if registered.IsThirdPartyAPIGroupVersion(gvk.GroupVersion()) {