summaryrefslogtreecommitdiff
path: root/indra/llplugin
diff options
context:
space:
mode:
authorCallum Prentice <callum@gmail.com>2017-04-19 15:54:26 -0700
committerCallum Prentice <callum@gmail.com>2017-04-19 15:54:26 -0700
commit95c7feba072128233884d6453f1e46b475df7f02 (patch)
tree9edab162cc9b413a1e5f09b9647d61a2079f9bd7 /indra/llplugin
parent45f67f4ed7922e87ae5dd471bd82506f1e2300da (diff)
Remove the scary 32bit exception handler that patches kernel32.dll since it was (a) scary, (b) didn't work on 64 bit and (c) likely the cause of a lot of anti-virus false positives
Diffstat (limited to 'indra/llplugin')
-rw-r--r--indra/llplugin/slplugin/slplugin.cpp29
1 files changed, 2 insertions, 27 deletions
diff --git a/indra/llplugin/slplugin/slplugin.cpp b/indra/llplugin/slplugin/slplugin.cpp
index 684bcf1207..b960565416 100644
--- a/indra/llplugin/slplugin/slplugin.cpp
+++ b/indra/llplugin/slplugin/slplugin.cpp
@@ -100,33 +100,8 @@ LPTOP_LEVEL_EXCEPTION_FILTER WINAPI MyDummySetUnhandledExceptionFilter(
BOOL PreventSetUnhandledExceptionFilter()
{
-// WARNING: This won't work on 64-bit Windows systems so we turn it off it.
-// It should work for any flavor of 32-bit Windows we care about.
-// If it's off, sometimes you will see an OS message when a plugin crashes
-#ifndef _WIN64
- HMODULE hKernel32 = LoadLibraryA( "kernel32.dll" );
- if ( NULL == hKernel32 )
- return FALSE;
-
- void *pOrgEntry = GetProcAddress( hKernel32, "SetUnhandledExceptionFilter" );
- if( NULL == pOrgEntry )
- return FALSE;
-
- unsigned char newJump[ 100 ];
- DWORD dwOrgEntryAddr = (DWORD)pOrgEntry;
- dwOrgEntryAddr += 5; // add 5 for 5 op-codes for jmp far
- void *pNewFunc = &MyDummySetUnhandledExceptionFilter;
- DWORD dwNewEntryAddr = (DWORD) pNewFunc;
- DWORD dwRelativeAddr = dwNewEntryAddr - dwOrgEntryAddr;
-
- newJump[ 0 ] = 0xE9; // JMP absolute
- memcpy( &newJump[ 1 ], &dwRelativeAddr, sizeof( pNewFunc ) );
- SIZE_T bytesWritten;
- BOOL bRet = WriteProcessMemory( GetCurrentProcess(), pOrgEntry, newJump, sizeof( pNewFunc ) + 1, &bytesWritten );
- return bRet;
-#else
- return FALSE;
-#endif
+ // remove the scary stuff that also isn't supported on 64 bit Windows
+ return TRUE;
}
////////////////////////////////////////////////////////////////////////////////