From: Peter Krempa Date: Mon, 2 Jun 2025 08:26:38 +0000 (+0200) Subject: esx: Avoid corner case where esxUtil_ParseDatastorePath could be called with NULL... X-Git-Tag: v11.5.0-rc1~86 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=edd5465c598b7aebf3ab1a1b51848bc50b7b7d9b;p=thirdparty%2Flibvirt.git esx: Avoid corner case where esxUtil_ParseDatastorePath could be called with NULL 'datastorePath' 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 Reviewed-by: Pavel Hrdina --- 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;