notoskrnl.exe: Fix the stack overflow bugs in raising exceptions (DLL_PROCESS_DETACH processing for DllMain in ntoskrnl.c)
Anton Rudnev
mibori at etersoft.ru
Sat Oct 11 07:30:03 CDT 2008
-------------- next part --------------
From 60d3c8de06cc42eae61a073d91c9367884d229a7 Mon Sep 17 00:00:00 2001
From: Anton Rudnev <mibori at builder.office.etersoft.ru>
Date: Tue, 7 Oct 2008 17:58:46 +0400
Subject: [PATCH] notoskrnl.exe: Fix the stack overflow bugs in raising exceptions (DLL_PROCESS_DETACH processing for DllMain in ntoskrnl.c)
---
dlls/ntoskrnl.exe/ntoskrnl.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 123a558..3fb0674 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -886,14 +886,20 @@ NTSTATUS WINAPI PsSetCreateProcessNotifyRoutine( PCREATE_PROCESS_NOTIFY_ROUTINE
BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
{
LARGE_INTEGER count;
+ static vectored_handler_added = NULL;
switch(reason)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls( inst );
- RtlAddVectoredExceptionHandler( TRUE, vectored_handler );
+ vectored_handler_added = RtlAddVectoredExceptionHandler( TRUE, vectored_handler );
KeQueryTickCount( &count ); /* initialize the global KeTickCount */
break;
+ case DLL_PROCESS_DETACH:
+ if(vectored_handler_added){
+ RtlRemoveVectoredExceptionHandler(vectored_handler_added);
+ vectored_handler_added = NULL;
+ }
}
return TRUE;
}
--
1.5.6.5.GIT
More information about the wine-patches
mailing list