mirror of https://github.com/mstorsjo/fdk-aac.git
Don't use an enum for a value read directly from the bitstream
The enum doesn't cover all possible values read from the bitstream. This fixes undefined behaviour sanitizer errors. Fixes: 22486/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LIBFDK_AAC_fuzzer-5735284884111360 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
This commit is contained in:
parent
e7d8591ff2
commit
5aa57d3633
|
@ -1325,7 +1325,7 @@ static TRANSPORTDEC_ERROR EldSpecificConfig_Parse(CSAudioSpecificConfig *asc,
|
||||||
CSTpCallBacks *cb) {
|
CSTpCallBacks *cb) {
|
||||||
TRANSPORTDEC_ERROR ErrorStatus = TRANSPORTDEC_OK;
|
TRANSPORTDEC_ERROR ErrorStatus = TRANSPORTDEC_OK;
|
||||||
CSEldSpecificConfig *esc = &asc->m_sc.m_eldSpecificConfig;
|
CSEldSpecificConfig *esc = &asc->m_sc.m_eldSpecificConfig;
|
||||||
ASC_ELD_EXT_TYPE eldExtType;
|
int eldExtType;
|
||||||
int eldExtLen, len, cnt, ldSbrLen = 0, eldExtLenSum, numSbrHeader = 0,
|
int eldExtLen, len, cnt, ldSbrLen = 0, eldExtLenSum, numSbrHeader = 0,
|
||||||
sbrIndex;
|
sbrIndex;
|
||||||
|
|
||||||
|
@ -1395,7 +1395,7 @@ static TRANSPORTDEC_ERROR EldSpecificConfig_Parse(CSAudioSpecificConfig *asc,
|
||||||
esc->m_downscaledSamplingFrequency = asc->m_samplingFrequency;
|
esc->m_downscaledSamplingFrequency = asc->m_samplingFrequency;
|
||||||
/* parse ExtTypeConfigData */
|
/* parse ExtTypeConfigData */
|
||||||
while (
|
while (
|
||||||
((eldExtType = (ASC_ELD_EXT_TYPE)FDKreadBits(hBs, 4)) != ELDEXT_TERM) &&
|
((eldExtType = FDKreadBits(hBs, 4)) != ELDEXT_TERM) &&
|
||||||
((INT)FDKgetValidBits(hBs) >= 0)) {
|
((INT)FDKgetValidBits(hBs) >= 0)) {
|
||||||
eldExtLen = len = FDKreadBits(hBs, 4);
|
eldExtLen = len = FDKreadBits(hBs, 4);
|
||||||
if (len == 0xf) {
|
if (len == 0xf) {
|
||||||
|
|
Loading…
Reference in New Issue