diff options
author | Martin Storsjo <martin@martin.st> | 2017-08-15 16:36:05 +0300 |
---|---|---|
committer | Martin Storsjo <martin@martin.st> | 2017-08-15 23:12:51 +0300 |
commit | 1244b257ee7ec7d56f021a5c2e39e2c04881a148 (patch) | |
tree | acaa570054e9b7bf4b32ca86f5ad4fe10e041087 /libMpegTPDec | |
parent | 393a86c0dbffdf741e44b84e6a88eb1c2138073d (diff) | |
download | fdk-aac-1244b257ee7ec7d56f021a5c2e39e2c04881a148.tar.gz fdk-aac-1244b257ee7ec7d56f021a5c2e39e2c04881a148.tar.bz2 fdk-aac-1244b257ee7ec7d56f021a5c2e39e2c04881a148.zip |
Always feed more input data when possible for ADTS
This fixes cases where an ADTS header could set numberOfRawDataBlocks
to a number larger than 1, which would lead to transportDec_FillData
not feeding any more data, even though the input buffer was depleted.
Fixes: 3014/clusterfuzz-testcase-5425740193464320
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Diffstat (limited to 'libMpegTPDec')
-rw-r--r-- | libMpegTPDec/src/tpdec_lib.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/libMpegTPDec/src/tpdec_lib.cpp b/libMpegTPDec/src/tpdec_lib.cpp index 24f755b..09f0703 100644 --- a/libMpegTPDec/src/tpdec_lib.cpp +++ b/libMpegTPDec/src/tpdec_lib.cpp @@ -342,9 +342,7 @@ TRANSPORTDEC_ERROR transportDec_FillData( } } else { /* ... else feed bitbuffer with new stream data (append). */ - if (hTp->numberOfRawDataBlocks <= 0) { - FDKfeedBuffer (hBs, pBuffer, bufferSize, pBytesValid) ; - } + FDKfeedBuffer (hBs, pBuffer, bufferSize, pBytesValid); } return TRANSPORTDEC_OK; |