[PATCH 0/4] Fix memory leaks
Pavel Hrdina (4): qemuBlockStorageSourceGetNFSProps: Fix memory handeling nodeDeviceEventSubmit: Fix memory leak virStorageVolPoolRefreshDataFree: Fix memory leak qemuDomainSetThrottleGroup: Fix memory leak src/node_device/node_device_udev.c | 3 ++- src/qemu/qemu_block.c | 4 ++-- src/qemu/qemu_driver.c | 2 ++ src/storage/storage_driver.c | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) -- 2.53.0
From: Pavel Hrdina <phrdina@redhat.com> We would leak ret if the remaining two virJSONValueObjectAdd() calls would fail but it will not happen with current code. Fixes: c7570bbef89b20058095270e07fad0dcc8f60e7a Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_block.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 9b43279797..7986db8e76 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -433,7 +433,7 @@ static virJSONValue * qemuBlockStorageSourceGetNFSProps(virStorageSource *src) { g_autoptr(virJSONValue) server = NULL; - virJSONValue *ret = NULL; + g_autoptr(virJSONValue) ret = NULL; if (!(server = qemuBlockStorageSourceBuildJSONNFSServer(&src->hosts[0]))) return NULL; @@ -458,7 +458,7 @@ qemuBlockStorageSourceGetNFSProps(virStorageSource *src) virJSONValueObjectAdd(&ret, "i:group", src->nfs_gid, NULL) < 0) return NULL; - return ret; + return g_steal_pointer(&ret); } -- 2.53.0
On Tue, Apr 07, 2026 at 20:26:15 +0200, Pavel Hrdina via Devel wrote:
From: Pavel Hrdina <phrdina@redhat.com>
We would leak ret if the remaining two virJSONValueObjectAdd() calls would fail but it will not happen with current code.
Fixes: c7570bbef89b20058095270e07fad0dcc8f60e7a Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_block.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com> In case driver is null we would leak memory allocated in event. Fixes: b56458d443ba1d890d336535b5840252cbb9df4b Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/node_device/node_device_udev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 89aca2d4d6..104433fb88 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -183,7 +183,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(nodeDeviceEvent, nodeDeviceEventFree); */ static int nodeDeviceEventSubmit(nodeDeviceEventType eventType, void *data, virFreeCallback dataFreeFunc) { - nodeDeviceEvent *event = g_new0(nodeDeviceEvent, 1); + nodeDeviceEvent *event = NULL; udevEventData *priv = NULL; if (!driver) @@ -191,6 +191,7 @@ static int nodeDeviceEventSubmit(nodeDeviceEventType eventType, void *data, virF priv = driver->privateData; + event = g_new0(nodeDeviceEvent, 1); event->eventType = eventType; event->data = data; event->dataFreeFunc = dataFreeFunc; -- 2.53.0
On Tue, Apr 07, 2026 at 20:26:16 +0200, Pavel Hrdina via Devel wrote:
From: Pavel Hrdina <phrdina@redhat.com>
In case driver is null we would leak memory allocated in event.
Fixes: b56458d443ba1d890d336535b5840252cbb9df4b Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/node_device/node_device_udev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com> When vol_path was added it missed adding free as well. Fixes: 03e750f35d6d8cc39dcdeb893b96e732bd2315ef Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/storage/storage_driver.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index e19e032427..22ce462a63 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -2259,6 +2259,7 @@ virStorageVolPoolRefreshDataFree(void *opaque) virStorageVolStreamInfo *cbdata = opaque; g_free(cbdata->pool_name); + g_free(cbdata->vol_path); g_free(cbdata); } -- 2.53.0
On Tue, Apr 07, 2026 at 20:26:17 +0200, Pavel Hrdina via Devel wrote:
From: Pavel Hrdina <phrdina@redhat.com>
When vol_path was added it missed adding free as well.
Fixes: 03e750f35d6d8cc39dcdeb893b96e732bd2315ef Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/storage/storage_driver.c | 1 + 1 file changed, 1 insertion(+)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
From: Pavel Hrdina <phrdina@redhat.com> The commit missed freeing group_name in info and conf_info structs. Fixes: 937f300c5626eca91da1f29e33c3621b457626df Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_driver.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 861795724a..2d31d4aa31 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -20579,6 +20579,8 @@ qemuDomainSetThrottleGroup(virDomainPtr dom, virDomainObjEndJob(vm); cleanup: + VIR_FREE(info.group_name); + VIR_FREE(conf_info.group_name); virDomainObjEndAPI(&vm); virTypedParamsFree(eventParams, eventNparams); return ret; -- 2.53.0
On Tue, Apr 07, 2026 at 20:26:18 +0200, Pavel Hrdina via Devel wrote:
From: Pavel Hrdina <phrdina@redhat.com>
The commit missed freeing group_name in info and conf_info structs.
Fixes: 937f300c5626eca91da1f29e33c3621b457626df Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_driver.c | 2 ++ 1 file changed, 2 insertions(+)
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
participants (2)
-
Pavel Hrdina -
Peter Krempa