diff options
author | Gonglei <arei.gonglei@huawei.com> | 2014-05-19 15:26:03 +0800 |
---|---|---|
committer | Michael Roth <mdroth@linux.vnet.ibm.com> | 2014-08-05 13:41:28 -0500 |
commit | ba980a52d65a2eb20aba22a7cd3cd9de1fc9cbdc (patch) | |
tree | bbc24a7ed0e88c784c7fd0967ff7fbd5ec20802f /qga | |
parent | df54f5efed9b3be7f40e14113cc1f13f5889e644 (diff) | |
download | qemu-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.c | 6 |
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); } |