[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL for-6.1 3/6] qga-win: Fix handle leak in ga_get_win_product_name()
From: |
Michael Roth |
Subject: |
[PULL for-6.1 3/6] qga-win: Fix handle leak in ga_get_win_product_name() |
Date: |
Tue, 3 Aug 2021 08:24:49 -0500 |
From: Basil Salman <basil@daynix.com>
In ga_get_win_product_name() a handle to Registry key was open but not
closed.
In this patch the handle is closed as part of the free routine.
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1929144
Signed-off-by: Basil Salman <basil@daynix.com>
Signed-off-by: Basil Salman <bsalman@redhat.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
---
qga/commands-win32.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index 763186efd4..098211e724 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -2231,7 +2231,7 @@ static char *ga_get_win_name(OSVERSIONINFOEXW const
*os_version, bool id)
static char *ga_get_win_product_name(Error **errp)
{
- HKEY key = NULL;
+ HKEY key = INVALID_HANDLE_VALUE;
DWORD size = 128;
char *result = g_malloc0(size);
LONG err = ERROR_SUCCESS;
@@ -2241,7 +2241,8 @@ static char *ga_get_win_product_name(Error **errp)
&key);
if (err != ERROR_SUCCESS) {
error_setg_win32(errp, err, "failed to open registry key");
- goto fail;
+ g_free(result);
+ return NULL;
}
err = RegQueryValueExA(key, "ProductName", NULL, NULL,
@@ -2262,9 +2263,13 @@ static char *ga_get_win_product_name(Error **errp)
goto fail;
}
+ RegCloseKey(key);
return result;
fail:
+ if (key != INVALID_HANDLE_VALUE) {
+ RegCloseKey(key);
+ }
g_free(result);
return NULL;
}
--
2.25.1
- [PULL for-6.1 0/6] qemu-ga patch queue for hard-freeze, Michael Roth, 2021/08/03
- [PULL for-6.1 2/6] qga-win: Fix build_guest_fsinfo() close of nonexistent, Michael Roth, 2021/08/03
- [PULL for-6.1 1/6] qga-win: Increase VSS freeze timeout to 60 secs instead of 10, Michael Roth, 2021/08/03
- [PULL for-6.1 4/6] qga-win: Free GMatchInfo properly, Michael Roth, 2021/08/03
- [PULL for-6.1 3/6] qga-win: Fix handle leak in ga_get_win_product_name(),
Michael Roth <=
- [PULL for-6.1 5/6] qemu-ga/msi: fix w32 libgcc name, Michael Roth, 2021/08/03
- [PULL for-6.1 6/6] qga-win/msi: fix missing libstdc++-6 DLL in MSI installer, Michael Roth, 2021/08/03
- Re: [PULL for-6.1 0/6] qemu-ga patch queue for hard-freeze, Peter Maydell, 2021/08/03