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: 20376/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_LIBFDK_AAC_fuzzer-4785514974806016.dms Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
This commit is contained in:
parent
d47c2c6259
commit
e7d8591ff2
|
@ -1628,14 +1628,14 @@ static TRANSPORTDEC_ERROR configExtension(CSUsacConfig *usc,
|
|||
TRANSPORTDEC_ERROR ErrorStatus = TRANSPORTDEC_OK;
|
||||
|
||||
int numConfigExtensions;
|
||||
CONFIG_EXT_ID usacConfigExtType;
|
||||
int usacConfigExtType;
|
||||
int usacConfigExtLength;
|
||||
|
||||
numConfigExtensions = (int)escapedValue(hBs, 2, 4, 8) + 1;
|
||||
for (int confExtIdx = 0; confExtIdx < numConfigExtensions; confExtIdx++) {
|
||||
INT nbits;
|
||||
int loudnessInfoSetConfigExtensionPosition = FDKgetValidBits(hBs);
|
||||
usacConfigExtType = (CONFIG_EXT_ID)escapedValue(hBs, 4, 8, 16);
|
||||
usacConfigExtType = escapedValue(hBs, 4, 8, 16);
|
||||
usacConfigExtLength = (int)escapedValue(hBs, 4, 8, 16);
|
||||
|
||||
/* Start bit position of config extension */
|
||||
|
|
Loading…
Reference in New Issue