summaryrefslogtreecommitdiff
path: root/qga
diff options
context:
space:
mode:
authorGonglei <arei.gonglei@huawei.com>2014-05-19 15:26:03 +0800
committerMichael Roth <mdroth@linux.vnet.ibm.com>2014-08-05 13:41:28 -0500
commitba980a52d65a2eb20aba22a7cd3cd9de1fc9cbdc (patch)
treebbc24a7ed0e88c784c7fd0967ff7fbd5ec20802f /qga
parentdf54f5efed9b3be7f40e14113cc1f13f5889e644 (diff)
downloadqemu-ba980a52d65a2eb20aba22a7cd3cd9de1fc9cbdc.tar.gz
qga: Fix handle fd leak in acquire_privilege()
token should be closed in all conditions. So move CloseHandle(token) to "out" branch. Signed-off-by: Wang Rui <moon.wangrui@huawei.com> Signed-off-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> (cherry picked from commit 374044f08fe18a18469b981812cd8695f5b3569c) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Diffstat (limited to 'qga')
-rw-r--r--qga/commands-win32.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index 0ee07b6e23..26ef1721d9 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -31,7 +31,7 @@
static void acquire_privilege(const char *name, Error **err)
{
- HANDLE token;
+ HANDLE token = NULL;
TOKEN_PRIVILEGES priv;
Error *local_err = NULL;
@@ -57,13 +57,15 @@ static void acquire_privilege(const char *name, Error **err)
goto out;
}
- CloseHandle(token);
} else {
error_set(&local_err, QERR_QGA_COMMAND_FAILED,
"failed to open privilege token");
}
out:
+ if (token) {
+ CloseHandle(token);
+ }
if (local_err) {
error_propagate(err, local_err);
}