VirtualBox

Changeset 102284 in vbox for trunk


Ignore:
Timestamp:
Nov 24, 2023 2:36:38 AM (15 months ago)
Author:
vboxsync
Message:

IPRT/ldr: Corrected segment flag conversion for LX images. bugref:10371

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/ldr/ldrLX.cpp

    r102276 r102284  
    479479        /* flags */
    480480        pModLX->aSegments[i].fFlags = 0;
    481         if (pModLX->paObjs[i].o32_flags & OBJBIGDEF)
    482             pModLX->aSegments[i].fFlags = RTLDRSEG_FLAG_16BIT;
     481        if (!(pModLX->paObjs[i].o32_flags & OBJBIGDEF))
     482            pModLX->aSegments[i].fFlags |= RTLDRSEG_FLAG_16BIT;
    483483        if (pModLX->paObjs[i].o32_flags & OBJALIAS16)
    484             pModLX->aSegments[i].fFlags = RTLDRSEG_FLAG_OS2_ALIAS16;
     484            pModLX->aSegments[i].fFlags |= RTLDRSEG_FLAG_OS2_ALIAS16;
    485485        if (pModLX->paObjs[i].o32_flags & OBJCONFORM)
    486             pModLX->aSegments[i].fFlags = RTLDRSEG_FLAG_OS2_CONFORM;
     486            pModLX->aSegments[i].fFlags |= RTLDRSEG_FLAG_OS2_CONFORM;
    487487        if (pModLX->paObjs[i].o32_flags & OBJIOPL)
    488             pModLX->aSegments[i].fFlags = RTLDRSEG_FLAG_OS2_IOPL;
     488            pModLX->aSegments[i].fFlags |= RTLDRSEG_FLAG_OS2_IOPL;
    489489
    490490        /* size and addresses */
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