Ignore:
Timestamp:
Jun 22, 2011, 11:43:22 PM (14 years ago)
Author:
dmik
Message:

kernel32: SEH: Fixed crashes at process termination (exceptions c0010001 and c0010002 in POPUPLOG.OS2) caused by attempting to unwind the Win32 exception chain twice, the second time after destroying the Win32 TEB block.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/seh/sehutil.s

    r21633 r21645  
    7676    popl %fs
    7777
    78     /* check if we could successfully switch to Win32 FS. A failure means the
    79      * Win32 thread is about to exit and TIB has been already destroyed. */
    80     movl (%esp), %ecx   /* (%esp) is OS/2 FS pushed above */
    81     movl %fs, %eax
    82     cmpw %cx, %ax
    83     je ___seh_handler_Skip_Win32_Unwind
    84 
    8578    pushl $0        /* DWORD (unused) */
    8679    pushl $0        /* PEXCEPTION_RECORD */
     
    8982    call _RtlUnwind@16 /* _stdcall, rtl, callee cleans stack */
    9083
    91 ___seh_handler_Skip_Win32_Unwind:
    9284    popl %fs
    9385
Note: See TracChangeset for help on using the changeset viewer.