VirtualBox

Changeset 52882 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Sep 29, 2014 10:13:38 AM (10 years ago)
Author:
vboxsync
Message:

IEM: Fixed inter-privilege RETF.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r52866 r52882  
    15801580    if ((uNewCs & X86_SEL_RPL) != pIemCpu->uCpl)
    15811581    {
    1582         /* Read the return pointer, it comes before the parameters. */
     1582        /* Read the outer stack pointer stored *after* the parameters. */
    15831583        RTCPTRUNION uPtrStack;
    15841584        rcStrict = iemMemStackPopContinueSpecial(pIemCpu, cbPop + cbRetPtr, &uPtrStack.pv, &uNewRsp);
    15851585        if (rcStrict != VINF_SUCCESS)
    15861586            return rcStrict;
     1587
     1588        uPtrStack.pu8 += cbPop; /* Skip the parameters. */
     1589
    15871590        uint16_t uNewOuterSs;
    15881591        uint64_t uNewOuterRsp;
     
    17331736        pCtx->cs.u32Limit       = cbLimitCs;
    17341737        pCtx->cs.u64Base        = u64Base;
    1735         pCtx->rsp               = uNewRsp;
     1738        pCtx->rsp               = uNewOuterRsp;
    17361739        pCtx->ss.Sel            = uNewOuterSs;
    17371740        pCtx->ss.ValidSel       = uNewOuterSs;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette