Changeset 22010 for trunk/src


Ignore:
Timestamp:
Aug 6, 2012, 2:01:29 AM (13 years ago)
Author:
dmik
Message:

kernel32: Disable Win32 TIB switch completely by default.

Previously, It was ON until the EXE type had been identified (e.g. when
loading KERNEL32.DLL and the DLLs it drags in). This could make
some apps spin in an exception handler loop (like OpenOffice
trying to load JVM.DLL).

This closes #83.

Location:
trunk/src/kernel32
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/winexelx.cpp

    r21999 r22010  
    4747 PTIB   ptib;
    4848
    49   if (!fForceWin32TIB) {
     49  if (fForceWin32TIB) {
     50      fSwitchTIBSel = TRUE;
     51  } else {
    5052      //Signal to TEB management that we're a real OS/2 app and don't
    5153      //require setting FS to our special win32 selector
  • trunk/src/kernel32/winexepe2lx.cpp

    r21916 r22010  
    128128    Win32Pe2LxImage(hinstance, fWin32k)
    129129{
     130    //Signal to TEB management that we're an ummodified Win32 app and
     131    //require setting FS to our special win32 selector
     132    fSwitchTIBSel = TRUE;
    130133}
    131134
  • trunk/src/kernel32/winexepeldr.cpp

    r21916 r22010  
    168168                   Win32PeLdrImage(szFileName, TRUE)
    169169{
     170    //Signal to TEB management that we're an ummodified Win32 app and
     171    //require setting FS to our special win32 selector
     172    fSwitchTIBSel = TRUE;
     173
    170174    dprintf(("Win32PeLdrExe ctor: %s", szFileName));
    171175    this->fConsoleApp = fConsoleApp;
  • trunk/src/kernel32/wprocess.cpp

    r22000 r22010  
    8181BOOL    fIsOS2Image = FALSE;            /* TRUE  -> Odin32 OS/2 application (not converted!) */
    8282                                        /* FALSE -> otherwise */
    83 BOOL    fSwitchTIBSel = TRUE;           // TRUE  -> switch TIB selectors
     83BOOL    fSwitchTIBSel = FALSE;          // TRUE  -> switch TIB selectors
    8484                                        // FALSE -> don't
    8585BOOL    fForceWin32TIB = FALSE;         // TRUE  -> force TIB switch
Note: See TracChangeset for help on using the changeset viewer.