Ignore:
Timestamp:
Apr 15, 2011, 9:32:09 PM (14 years ago)
Author:
dmik
Message:

kernel32: SEH: Make sure Win32 FS is active when unregistering the try handler: the code within it (e.g. an OS/2 longjmp) can occasionally reset it to OS/2 FS.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/excpt.h

    r21605 r21624  
    134134        else if (__seh_frame.state == 3)                                       \
    135135            /* remove exception handler */                                     \
    136             __asm__ ("movl %%fs:0, %%ecx; "                                    \
     136            __asm__ ("push $1; "                                               \
     137                     "call _SetWin32TIB@4; "                                   \
     138                     ""                                                        \
     139                     "movl %%fs:0, %%ecx; "                                    \
    137140                     "movl 60(%%ecx), %%eax; "                                 \
    138141                     "movl %%eax, %%fs:0; "                                    \
     
    162165        else if (__seh_frame.state == 3)                                       \
    163166            /* remove exception handler */                                     \
    164             __asm__ ("movl %%fs:0, %%ecx; "                                    \
     167            __asm__ ("push $1; "                                               \
     168                     "call _SetWin32TIB@4; "                                   \
     169                     ""                                                        \
     170                     "movl %%fs:0, %%ecx; "                                    \
    165171                     "movl 60(%%ecx), %%eax; "                                 \
    166172                     "movl %%eax, %%fs:0; "                                    \
Note: See TracChangeset for help on using the changeset viewer.