win32: Fix handle leak apr_shm_create() implementation.
* shmem/win32/shm.c
(can_create_global_maps): Close thread/process token after checking for
privilege.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1859270 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/shmem/win32/shm.c b/shmem/win32/shm.c
index b01411e..0ca8247 100644
--- a/shmem/win32/shm.c
+++ b/shmem/win32/shm.c
@@ -87,10 +87,12 @@
ok = OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken);
}
- if (ok) {
- ok = LookupPrivilegeValue(NULL, SE_CREATE_GLOBAL_NAME, &priv_id);
+ if (!ok) {
+ return 0;
}
+ ok = LookupPrivilegeValue(NULL, SE_CREATE_GLOBAL_NAME, &priv_id);
+
if (ok) {
privs.PrivilegeCount = 1;
privs.Control = PRIVILEGE_SET_ALL_NECESSARY;
@@ -99,6 +101,8 @@
ok = PrivilegeCheck(hToken, &privs, &has_priv);
}
+ CloseHandle(hToken);
+
if (ok && !has_priv) {
return 0;
}