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>
This commit is contained in:
Gonglei 2014-05-19 15:26:03 +08:00 committed by Michael Roth
parent e00fcfeab3
commit 374044f08f

View File

@ -31,7 +31,7 @@
static void acquire_privilege(const char *name, Error **errp)
{
HANDLE token;
HANDLE token = NULL;
TOKEN_PRIVILEGES priv;
Error *local_err = NULL;
@ -53,13 +53,15 @@ static void acquire_privilege(const char *name, Error **errp)
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(errp, local_err);
}