From 8969f0df7e54a0801e6724ea1b1c3318149fae26 Mon Sep 17 00:00:00 2001 From: "Vojtech Vitek (V-Teq)" Date: Mon, 27 Oct 2014 15:01:24 +0100 Subject: [PATCH] Handle nil values in conversion.EnforcePtr() Signed-off-by: Vojtech Vitek (V-Teq) --- pkg/conversion/meta.go | 3 +++ pkg/conversion/meta_test.go | 8 ++++++++ 2 files changed, 11 insertions(+) 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") + } +}