VirtualBox

Changeset 103066 in vbox for trunk/src/VBox/Runtime/common


Ignore:
Timestamp:
Jan 25, 2024 3:03:18 PM (12 months ago)
Author:
vboxsync
Message:

iprt: Prevent array-index-out-of-bounds UBSAN warnings on Linux, bugref:10585.

File:
1 edited

Legend:

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

    r101362 r103066  
    549549        uint16_t const iGroup = RT_HI_U16(fFlagsAndGroup);
    550550        if (   iGroup != UINT16_MAX
    551             && (   (pLoggerInt->afGroups[iGroup < pLoggerInt->cGroups ? iGroup : 0] & (fFlags | RTLOGGRPFLAGS_ENABLED))
     551            && (   (*(pLoggerInt->afGroups + (iGroup < pLoggerInt->cGroups ? iGroup : 0)) & (fFlags | RTLOGGRPFLAGS_ENABLED))
    552552                != (fFlags | RTLOGGRPFLAGS_ENABLED)))
    553553            pLoggerInt = NULL;
     
    15561556    iGroup = pLoggerInt->cGroups;
    15571557    while (iGroup-- > 0)
    1558         pLoggerInt->afGroups[iGroup] = 0;
     1558        *(pLoggerInt->afGroups + iGroup) = 0;
    15591559
    15601560    /*
     
    17891789            {
    17901790                if (fEnabled)
    1791                     pLoggerInt->afGroups[i] |= fFlags;
     1791                    *(pLoggerInt->afGroups + i) |= fFlags;
    17921792                else
    1793                     pLoggerInt->afGroups[i] &= ~fFlags;
     1793                    *(pLoggerInt->afGroups + i) &= ~fFlags;
    17941794            }
    17951795        }
     
    41594159        return VINF_LOG_DISABLED;
    41604160    if (    iGroup != ~0U
    4161         &&  (pLoggerInt->afGroups[iGroup] & (fFlags | RTLOGGRPFLAGS_ENABLED)) != (fFlags | RTLOGGRPFLAGS_ENABLED))
     4161        &&  (*(pLoggerInt->afGroups + iGroup) & (fFlags | RTLOGGRPFLAGS_ENABLED)) != (fFlags | RTLOGGRPFLAGS_ENABLED))
    41624162        return VINF_LOG_DISABLED;
    41634163
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