fixed a memory leak in EnterCriticalPolicySection()
authorThomas Bluemel <thomas@reactsoft.com>
Thu, 12 Jan 2006 18:56:21 +0000 (18:56 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Thu, 12 Jan 2006 18:56:21 +0000 (18:56 +0000)
svn path=/trunk/; revision=20810

reactos/lib/userenv/gpolicy.c

index 28259e8..26cd254 100644 (file)
@@ -477,29 +477,29 @@ EnterCriticalPolicySection(IN BOOL bMachine)
 
     /* create or open the mutex */
     lpSecurityDescriptor = CreateDefaultSecurityDescriptor();
-    if (lpSecurityDescriptor == NULL)
+    if (lpSecurityDescriptor != NULL)
     {
-        return NULL;
-    }
+        SecurityAttributes.nLength = sizeof(SECURITY_ATTRIBUTES);
+        SecurityAttributes.lpSecurityDescriptor = lpSecurityDescriptor;
+        SecurityAttributes.bInheritHandle = FALSE;
 
-    SecurityAttributes.nLength = sizeof(SECURITY_ATTRIBUTES);
-    SecurityAttributes.lpSecurityDescriptor = lpSecurityDescriptor;
-    SecurityAttributes.bInheritHandle = FALSE;
+        hSection = CreateMutexW(&SecurityAttributes,
+                                FALSE,
+                                (bMachine ? szMachineGPMutex : szLocalGPMutex));
 
-    hSection = CreateMutexW(&SecurityAttributes,
-                            FALSE,
-                            (bMachine ? szMachineGPMutex : szLocalGPMutex));
+        LocalFree((HLOCAL)lpSecurityDescriptor);
 
-    if (hSection != NULL)
-    {
-        /* wait up to 10 seconds */
-        if (WaitForSingleObject(hSection,
-                                60000) != WAIT_FAILED)
+        if (hSection != NULL)
         {
-            return hSection;
-        }
+            /* wait up to 10 seconds */
+            if (WaitForSingleObject(hSection,
+                                    60000) != WAIT_FAILED)
+            {
+                return hSection;
+            }
 
-        CloseHandle(hSection);
+            CloseHandle(hSection);
+        }
     }
 
     return NULL;