VirtualBox

Ignore:
Timestamp:
May 17, 2021 11:19:51 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144466
Message:

AudioTest.cpp: Added missing EOF check in AudioTestWaveFileRead. bugref:10008

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/AudioTest.cpp

    r89116 r89125  
    11241124int AudioTestWaveFileRead(PAUDIOTESTWAVEFILE pWaveFile, void *pvBuf, size_t cbBuf, size_t *pcbRead)
    11251125{
     1126    bool fEofAdjusted;
     1127    if (pWaveFile->offCur + cbBuf <= pWaveFile->cbSamples)
     1128        fEofAdjusted = false;
     1129    else if (pcbRead)
     1130    {
     1131        fEofAdjusted = true;
     1132        cbBuf = pWaveFile->cbSamples - pWaveFile->offCur;
     1133    }
     1134    else
     1135        return VERR_EOF;
     1136
    11261137    int rc = RTFileReadAt(pWaveFile->hFile, pWaveFile->offSamples + pWaveFile->offCur, pvBuf, cbBuf, pcbRead);
    11271138    if (RT_SUCCESS(rc))
     
    11301141        {
    11311142            pWaveFile->offCur += (uint32_t)*pcbRead;
    1132             if (cbBuf > *pcbRead)
     1143            if (fEofAdjusted || cbBuf > *pcbRead)
    11331144                rc = VINF_EOF;
    11341145            else if (!cbBuf && pWaveFile->offCur == pWaveFile->cbSamples)
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