[libvirt] [PATCH] esx: Fix managed object lookup with optional occurrence

Exit early if managed object is not found, instead of dereferencing a NULL pointer and triggering a segfault. --- src/esx/esx_vi.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c index 5c8d79e..f4033eb 100644 --- a/src/esx/esx_vi.c +++ b/src/esx/esx_vi.c @@ -3964,7 +3964,7 @@ esxVI_ProductVersionToDefaultVirtualHWVersion(esxVI_ProductVersion productVersio #define ESX_VI__TEMPLATE__LOOKUP(_type, _complete_properties, \ - _cast_from_anytype) \ + _cast_from_anytype) \ int \ esxVI_Lookup##_type(esxVI_Context *ctx, const char* name /* optional */, \ esxVI_ManagedObjectReference *root, \ @@ -3999,6 +3999,12 @@ esxVI_ProductVersionToDefaultVirtualHWVersion(esxVI_ProductVersion productVersio goto cleanup; \ } \ \ + if (objectContent == NULL) { \ + /* not found, exit early */ \ + result = 0; \ + goto cleanup; \ + } \ + \ if (esxVI_##_type##_Alloc(ptrptr) < 0) { \ goto cleanup; \ } \ -- 1.7.4.1

On 09/06/2011 09:01 PM, Matthias Bolte wrote:
Exit early if managed object is not found, instead of dereferencing a NULL pointer and triggering a segfault. --- src/esx/esx_vi.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
ACK. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

2011/9/7 Eric Blake <eblake@redhat.com>:
On 09/06/2011 09:01 PM, Matthias Bolte wrote:
Exit early if managed object is not found, instead of dereferencing a NULL pointer and triggering a segfault. --- src/esx/esx_vi.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
ACK.
Thanks, pushed. -- Matthias Bolte http://photron.blogspot.com
participants (2)
-
Eric Blake
-
Matthias Bolte