From 87e721367ebf580d9c7afcda89a9c5cdeea82994 Mon Sep 17 00:00:00 2001 From: Davide Agnello Date: Fri, 2 Sep 2016 07:50:19 -0700 Subject: [PATCH] vSphere Cloud provider null pointer exception SelectByType function in govmomi will panic if deviceType is not Array, Chan, Map, Ptr, or Slice. Also checking if vmDevices or vm are nil, there is nothing to cleanup. --- pkg/cloudprovider/providers/vsphere/vsphere.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/cloudprovider/providers/vsphere/vsphere.go b/pkg/cloudprovider/providers/vsphere/vsphere.go index a6655618d20..f546e5833ea 100644 --- a/pkg/cloudprovider/providers/vsphere/vsphere.go +++ b/pkg/cloudprovider/providers/vsphere/vsphere.go @@ -570,6 +570,9 @@ func getVirtualMachineDevices(cfg *VSphereConfig, ctx context.Context, c *govmom // Removes SCSI controller which is latest attached to VM. func cleanUpController(newSCSIController types.BaseVirtualDevice, vmDevices object.VirtualDeviceList, vm *object.VirtualMachine, ctx context.Context) error { + if newSCSIController == nil || vmDevices == nil || vm == nil { + return nil + } ctls := vmDevices.SelectByType(newSCSIController) if len(ctls) < 1 { return ErrNoDevicesFound