Do not free a Critical Section we did not initialize. Fixes the silent UM exception...
authorAndrew Munger <waxdragon@gmail.com>
Tue, 16 Aug 2005 23:37:17 +0000 (23:37 +0000)
committerAndrew Munger <waxdragon@gmail.com>
Tue, 16 Aug 2005 23:37:17 +0000 (23:37 +0000)
svn path=/trunk/; revision=17418

reactos/lib/kernel32/misc/dllmain.c

index f429dbf..53ed566 100644 (file)
@@ -26,6 +26,7 @@ HMODULE hCurrentModule = NULL;
 HANDLE hBaseDir = NULL;
 
 static BOOL DllInitialized = FALSE;
+static BOOL ConsoleInitialized = FALSE;
 
 BOOL STDCALL
 DllMain(HANDLE hInst,
@@ -141,6 +142,7 @@ BasepInitConsole(VOID)
     }
 
     /* Initialize Console Ctrl Handler */
+    ConsoleInitialized = TRUE;
     RtlInitializeCriticalSection(&ConsoleLock);
     SetConsoleCtrlHandler(DefaultConsoleCtrlHandler, TRUE);
 
@@ -289,7 +291,10 @@ DllMain(HANDLE hDll,
             NlsUninit();
 
            /* Delete DLL critical section */
-           RtlDeleteCriticalSection (&ConsoleLock);
+           if (ConsoleInitialized == TRUE)
+             {
+               RtlDeleteCriticalSection (&ConsoleLock);
+             }
            RtlDeleteCriticalSection (&DllLock);
 
            /* Close object base directory */