Changeset 21612 for trunk/src


Ignore:
Timestamp:
Apr 14, 2011, 12:54:43 PM (14 years ago)
Author:
dmik
Message:

kernel32/SEH: Fixed: The try exception handler would incorrectly unwind the WIn32 exception change due to use of a register that is not preserved across stdcall calls.

File:
1 edited

Legend:

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

    r21605 r21612  
    6464    /* restore the Win32 chain in our frame */
    6565    movl 12(%ebp), %eax
    66     movl 60(%eax), %ecx /* pPrevFrameWin32 */
    67     movl %ecx, 0(%eax)  /* pPrev */
     66    movl 60(%eax), %ebx /* pPrevFrameWin32 */
     67    movl %ebx, 0(%eax)  /* pPrev */
    6868
    6969    /* unwind the Win32 chain including our frame as someone's definitely
     
    7575    pushl $0        /* PEXCEPTION_RECORD */
    7676    pushl $0        /* LPVOID (unused) */
    77     pushl %ecx      /* PEXCEPTION_FRAME */
     77    pushl %ebx      /* PEXCEPTION_FRAME */
    7878    call _RtlUnwind@16 /* _stdcall, rtl, callee cleans stack */
    7979    popl %fs
Note: See TracChangeset for help on using the changeset viewer.