avcodec/aac/aacdec_usac: Test ac in usac

ff_aac_usac_config_decode() needs AACDecContext to be set but some callers
pass NULL.

Happens only when the LATM decoder is used, and USAC is not supported in
LATM

Fixes: member access within null pointer of type 'AACDecContext' (aka 'struct AACDecContext')
Fixes: 69435/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AAC_LATM_fuzzer-5733527483121664

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Lynne <dev@lynne.ee>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
release/7.1
Michael Niedermayer 6 months ago
parent c221c7422f
commit 1080116658
No known key found for this signature in database
GPG Key ID: B18E8928B3948D64
  1. 3
      libavcodec/aac/aacdec_usac.c

@ -348,6 +348,9 @@ int ff_aac_usac_config_decode(AACDecContext *ac, AVCodecContext *avctx,
int map_pos_set = 0; int map_pos_set = 0;
uint8_t layout_map[MAX_ELEM_ID*4][3] = { 0 }; uint8_t layout_map[MAX_ELEM_ID*4][3] = { 0 };
if (!ac)
return AVERROR_PATCHWELCOME;
memset(usac, 0, sizeof(*usac)); memset(usac, 0, sizeof(*usac));
freq_idx = get_bits(gb, 5); /* usacSamplingFrequencyIndex */ freq_idx = get_bits(gb, 5); /* usacSamplingFrequencyIndex */

Loading…
Cancel
Save