VirtualBox

Changeset 104344 in vbox


Ignore:
Timestamp:
Apr 17, 2024 1:19:20 PM (10 months ago)
Author:
vboxsync
Message:

Additions: Linux: UBSAN: make r161313 less ugly, bugref:10585.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxGuestLibSharedFoldersInline.h

    r103067 r104344  
    15031503        if (pReq)
    15041504        {
     1505            char *ach = pReq->StrPath.String.ach;
    15051506            pReq->StrPath.u16Length = (uint16_t)cchPath;
    15061507            pReq->StrPath.u16Size   = (uint16_t)cchPath + 1;
    15071508            RT_BCOPY_UNFORTIFIED(pReq->StrPath.String.ach, pszPath, cchPath);
    1508             *(pReq->StrPath.String.ach + cchPath) = '\0';
     1509            ach[cchPath] = '\0';
    15091510
    15101511            {
  • trunk/src/VBox/Additions/linux/sharedfolders/dirops.c

    r103067 r104344  
    487487            uint16_t        cbSrcName;
    488488            uint16_t        cchSrcName;
     489            char            *ach = pEntry->name.String.ach;
    489490            AssertLogRelMsgBreak(offEntryInBuf + RT_UOFFSETOF(SHFLDIRINFO, name.String) <= cbValid,
    490491                                 ("%#llx + %#x vs %#x\n", offEntryInBuf, RT_UOFFSETOF(SHFLDIRINFO, name.String), cbValid));
     
    493494            AssertLogRelBreak(offEntryInBuf + RT_UOFFSETOF(SHFLDIRINFO, name.String) + cbSrcName <= cbValid);
    494495            AssertLogRelBreak(cchSrcName < cbSrcName);
    495             AssertLogRelBreak(*(pEntry->name.String.ach + cchSrcName) == '\0');
     496            AssertLogRelBreak(ach[cchSrcName] == '\0');
    496497
    497498            /*
     
    501502                || pEntry->name.String.ach[0] != '.'
    502503                || (   cchSrcName == 2
    503                     && *(pEntry->name.String.ach + 1) != '.')) {
     504                    && ach[1] != '.')) {
    504505                int const   d_type = vbsf_get_d_type(pEntry->Info.Attr.fMode);
    505506                ino_t const d_ino  = (ino_t)offPos + 0xbeef; /* very fake */
  • trunk/src/VBox/Additions/linux/sharedfolders/utils.c

    r103767 r104344  
    10481048        RT_BCOPY_UNFORTIFIED(&tmp->String.utf8[0], d_name, d_len + 1);
    10491049    else {
    1050         RT_BCOPY_UNFORTIFIED(&tmp->String.utf8[0], p_name, p_len);
    1051         *(tmp->String.utf8 + p_len) = '/';
    1052         RT_BCOPY_UNFORTIFIED(tmp->String.utf8 + p_len + 1, d_name, d_len);
    1053         *(tmp->String.utf8 + p_len + 1 + d_len) = '\0';
     1050        uint8_t *pUtf8 = tmp->String.utf8;
     1051        RT_BCOPY_UNFORTIFIED(&pUtf8[0], p_name, p_len);
     1052        pUtf8[p_len] = '/';
     1053        RT_BCOPY_UNFORTIFIED(&pUtf8[p_len + 1], d_name, d_len);
     1054        pUtf8[p_len + 1 + d_len] = '\0';
    10541055    }
    10551056
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