VirtualBox

Changeset 77896 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Mar 27, 2019 4:51:37 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
129602
Message:

VMM/IEM: Fix CPL checks for INT1 (ICEBP) generated #DBs. Fix v8086 mode IOPL checks for INT1 (ICEBP) and INTO.

File:
1 edited

Legend:

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

    r77717 r77896  
    48694869
    48704870    /* Check DPL against CPL if applicable. */
    4871     if (fFlags & IEM_XCPT_FLAGS_T_SOFT_INT)
     4871    if (fFlags & (IEM_XCPT_FLAGS_T_SOFT_INT | IEM_XCPT_FLAGS_ICEBP_INSTR) == IEM_XCPT_FLAGS_T_SOFT_INT)
    48724872    {
    48734873        if (pVCpu->iem.s.uCpl > Idte.Gate.u2Dpl)
     
    53045304
    53055305    /* Check DPL against CPL if applicable. */
    5306     if (fFlags & IEM_XCPT_FLAGS_T_SOFT_INT)
     5306    if (fFlags & (IEM_XCPT_FLAGS_T_SOFT_INT | IEM_XCPT_FLAGS_ICEBP_INSTR) == IEM_XCPT_FLAGS_T_SOFT_INT)
    53075307    {
    53085308        if (pVCpu->iem.s.uCpl > Idte.Gate.u2Dpl)
     
    55255525    if (   pVCpu->cpum.GstCtx.eflags.Bits.u1VM
    55265526        && pVCpu->cpum.GstCtx.eflags.Bits.u2IOPL != 3
    5527         && (fFlags & (IEM_XCPT_FLAGS_T_SOFT_INT | IEM_XCPT_FLAGS_BP_INSTR)) == IEM_XCPT_FLAGS_T_SOFT_INT
     5527        && (fFlags & (  IEM_XCPT_FLAGS_T_SOFT_INT
     5528                      | IEM_XCPT_FLAGS_BP_INSTR
     5529                      | IEM_XCPT_FLAGS_ICEBP_INSTR
     5530                      | IEM_XCPT_FLAGS_OF_INSTR)) == IEM_XCPT_FLAGS_T_SOFT_INT
    55285531        && (pVCpu->cpum.GstCtx.cr0 & X86_CR0_PE) )
    55295532    {
Note: See TracChangeset for help on using the changeset viewer.

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