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 374044f08f
)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
df54f5efed
commit
ba980a52d6
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
static void acquire_privilege(const char *name, Error **err)
|
static void acquire_privilege(const char *name, Error **err)
|
||||||
{
|
{
|
||||||
HANDLE token;
|
HANDLE token = NULL;
|
||||||
TOKEN_PRIVILEGES priv;
|
TOKEN_PRIVILEGES priv;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
|
@ -57,13 +57,15 @@ static void acquire_privilege(const char *name, Error **err)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
CloseHandle(token);
|
|
||||||
} else {
|
} else {
|
||||||
error_set(&local_err, QERR_QGA_COMMAND_FAILED,
|
error_set(&local_err, QERR_QGA_COMMAND_FAILED,
|
||||||
"failed to open privilege token");
|
"failed to open privilege token");
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
if (token) {
|
||||||
|
CloseHandle(token);
|
||||||
|
}
|
||||||
if (local_err) {
|
if (local_err) {
|
||||||
error_propagate(err, local_err);
|
error_propagate(err, local_err);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue