diff --git a/pkg/conversion/meta.go b/pkg/conversion/meta.go index 0875f886c22..357f099351e 100644 --- a/pkg/conversion/meta.go +++ b/pkg/conversion/meta.go @@ -118,5 +118,8 @@ func EnforcePtr(obj interface{}) (reflect.Value, error) { } return reflect.Value{}, fmt.Errorf("expected pointer, but got %v type", v.Type().Name()) } + if v.IsNil() { + return reflect.Value{}, fmt.Errorf("expected pointer, but got nil") + } return v.Elem(), nil } diff --git a/pkg/conversion/meta_test.go b/pkg/conversion/meta_test.go index d2e359275dc..f7ede632123 100644 --- a/pkg/conversion/meta_test.go +++ b/pkg/conversion/meta_test.go @@ -253,3 +253,11 @@ func TestInvalidPtrValueKind(t *testing.T) { } } } + +func TestEnforceNilPtr(t *testing.T) { + var nilPtr *struct{} + _, err := EnforcePtr(nilPtr) + if err == nil { + t.Errorf("Expected error on nil pointer") + } +}