From: Peter Krempa <pkre...@redhat.com>

The generated code which parses the data from XML in
esxVI_LookupDatastoreContentByDatastoreName can fill the 'folderPath'
property with NULL if it were missing from the input XML. While this is
not likely when talking to esx it is a possible outcome. Skipp NULL
results.

All other code paths already ensure that the function is not called with
NULL.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/776
Signed-off-by: Peter Krempa <pkre...@redhat.com>
---
 src/esx/esx_storage_backend_vmfs.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/esx/esx_storage_backend_vmfs.c 
b/src/esx/esx_storage_backend_vmfs.c
index 145aff0c9c..8e13201fe2 100644
--- a/src/esx/esx_storage_backend_vmfs.c
+++ b/src/esx/esx_storage_backend_vmfs.c
@@ -616,6 +616,9 @@ esxStoragePoolListVolumes(virStoragePoolPtr pool, char 
**const names,
          searchResults = searchResults->_next) {
         g_autofree char *directoryAndFileName = NULL;

+        if (!searchResults->folderPath)
+            continue;
+
         if (esxUtil_ParseDatastorePath(searchResults->folderPath, NULL, NULL,
                                        &directoryAndFileName) < 0) {
             goto cleanup;
@@ -759,6 +762,9 @@ esxStorageVolLookupByKey(virConnectPtr conn, const char 
*key)
              searchResults = searchResults->_next) {
             g_autofree char *directoryAndFileName = NULL;

+            if (searchResults->folderPath)
+                continue;
+
             if (esxUtil_ParseDatastorePath(searchResults->folderPath, NULL,
                                            NULL, &directoryAndFileName) < 0) {
                 goto cleanup;
-- 
2.49.0

Reply via email to