Do not free a Critical Section we did not initialize. Fixes the silent
UM exception I was seeing while trying to install VMWare tools. Patch by
Filip.
Modified: trunk/reactos/lib/kernel32/misc/dllmain.c
_____
Modified: trunk/reactos/lib/kernel32/misc/dllmain.c
--- trunk/reactos/lib/kernel32/misc/dllmain.c 2005-08-16 23:05:33 UTC
(rev 17417)
+++ trunk/reactos/lib/kernel32/misc/dllmain.c 2005-08-16 23:37:17 UTC
(rev 17418)
@@ -26,6 +26,7 @@
HANDLE hBaseDir = NULL;
static BOOL DllInitialized = FALSE;
+static BOOL ConsoleInitialized = FALSE;
BOOL STDCALL
DllMain(HANDLE hInst,
@@ -141,6 +142,7 @@
}
/* Initialize Console Ctrl Handler */
+ ConsoleInitialized = TRUE;
RtlInitializeCriticalSection(&ConsoleLock);
SetConsoleCtrlHandler(DefaultConsoleCtrlHandler, TRUE);
@@ -289,7 +291,10 @@
NlsUninit();
/* Delete DLL critical section */
- RtlDeleteCriticalSection (&ConsoleLock);
+ if (ConsoleInitialized == TRUE)
+ {
+ RtlDeleteCriticalSection (&ConsoleLock);
+ }
RtlDeleteCriticalSection (&DllLock);
/* Close object base directory */