VirtualBox

Changeset 103067 in vbox for trunk


Ignore:
Timestamp:
Jan 25, 2024 3:31:01 PM (13 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161313
Message:

Additions: Linux: vboxsf: Prevent array-index-out-of-bounds UBSAN warnings, bugref:10585.

Location:
trunk
Files:
4 edited

Legend:

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

    r101360 r103067  
    15061506            pReq->StrPath.u16Size   = (uint16_t)cchPath + 1;
    15071507            RT_BCOPY_UNFORTIFIED(pReq->StrPath.String.ach, pszPath, cchPath);
    1508             pReq->StrPath.String.ach[cchPath] = '\0';
     1508            *(pReq->StrPath.String.ach + cchPath) = '\0';
    15091509
    15101510            {
  • trunk/src/VBox/Additions/linux/sharedfolders/dirops.c

    r101359 r103067  
    493493            AssertLogRelBreak(offEntryInBuf + RT_UOFFSETOF(SHFLDIRINFO, name.String) + cbSrcName <= cbValid);
    494494            AssertLogRelBreak(cchSrcName < cbSrcName);
    495             AssertLogRelBreak(pEntry->name.String.ach[cchSrcName] == '\0');
     495            AssertLogRelBreak(*(pEntry->name.String.ach + cchSrcName) == '\0');
    496496
    497497            /*
     
    501501                || pEntry->name.String.ach[0] != '.'
    502502                || (   cchSrcName == 2
    503                     && pEntry->name.String.ach[1] != '.')) {
     503                    && *(pEntry->name.String.ach + 1) != '.')) {
    504504                int const   d_type = vbsf_get_d_type(pEntry->Info.Attr.fMode);
    505505                ino_t const d_ino  = (ino_t)offPos + 0xbeef; /* very fake */
  • trunk/src/VBox/Additions/linux/sharedfolders/utils.c

    r101359 r103067  
    10481048    else {
    10491049        RT_BCOPY_UNFORTIFIED(&tmp->String.utf8[0], p_name, p_len);
    1050         tmp->String.utf8[p_len] = '/';
    1051         RT_BCOPY_UNFORTIFIED(&tmp->String.utf8[p_len + 1], d_name, d_len);
    1052         tmp->String.utf8[p_len + 1 + d_len] = '\0';
     1050        *(tmp->String.utf8 + p_len) = '/';
     1051        RT_BCOPY_UNFORTIFIED(tmp->String.utf8 + p_len + 1, d_name, d_len);
     1052        *(tmp->String.utf8 + p_len + 1 + d_len) = '\0';
    10531053    }
    10541054
  • trunk/src/VBox/Additions/linux/sharedfolders/vfsmod.c

    r103024 r103067  
    474474        path->u16Length = 1;
    475475        path->u16Size = 2;
    476         path->String.utf8[0] = '/';
    477         path->String.utf8[1] = 0;
     476        RTStrCopy(path->String.utf8, path->u16Size, "/");
    478477
    479478        /*
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