VirtualBox

Changeset 81845 in vbox


Ignore:
Timestamp:
Nov 14, 2019 6:27:56 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
134639
Message:

DevATA: Be paranoid about the I/O buffer accesses. [fixes] bugref:9218

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/DevATA.cpp

    r81844 r81845  
    16551655    uint32_t cbToRead = cSectors * cbSector;
    16561656    Assert(pvBuf == &s->abIOBuffer[0]);
    1657     AssertReturn(cbToRead <= sizeof(s->abIOBuffer), VERR_BUFFER_OVERFLOW);
     1657    AssertReturnStmt(cbToRead <= sizeof(s->abIOBuffer), *pfRedo = false, VERR_BUFFER_OVERFLOW);
    16581658
    16591659    ataR3LockLeave(pCtl);
     
    16871687    uint32_t cbToWrite = cSectors * cbSector;
    16881688    Assert(pvBuf == &s->abIOBuffer[0]);
    1689     AssertReturn(cbToWrite <= sizeof(s->abIOBuffer), VERR_BUFFER_OVERFLOW);
     1689    AssertReturnStmt(cbToWrite <= sizeof(s->abIOBuffer), *pfRedo = false, VERR_BUFFER_OVERFLOW);
    16901690
    16911691    ataR3LockLeave(pCtl);
     
    21432143                    break;
    21442144            }
    2145             AssertLogRelReturn(pbBuf - &s->abIOBuffer[0] + cbCurrTX <= sizeof(s->abIOBuffer), false);
     2145            AssertLogRelReturn((uintptr_t)(pbBuf - &s->abIOBuffer[0]) + cbCurrTX <= sizeof(s->abIOBuffer), false);
    21462146            rc = s->pDrvMedia->pfnSendCmd(s->pDrvMedia, aATAPICmd, ATAPI_PACKET_SIZE, (PDMMEDIATXDIR)s->uTxDir,
    21472147                                          pbBuf, &cbCurrTX, abATAPISense, sizeof(abATAPISense), 30000 /**< @todo timeout */);
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