[FFmpeg-devel] [PATCH 05/20] avcodec/wmadec: Check operations that can fail
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Fri May 7 09:46:32 EEST 2021
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
libavcodec/wmadec.c | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index 6eec85e59a..47abcecc9c 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -106,20 +106,31 @@ static av_cold int wma_decode_init(AVCodecContext *avctx)
return ret;
/* init MDCT */
- for (i = 0; i < s->nb_block_sizes; i++)
- ff_mdct_init(&s->mdct_ctx[i], s->frame_len_bits - i + 1, 1, 1.0 / 32768.0);
+ for (i = 0; i < s->nb_block_sizes; i++) {
+ ret = ff_mdct_init(&s->mdct_ctx[i], s->frame_len_bits - i + 1,
+ 1, 1.0 / 32768.0);
+ if (ret < 0)
+ return ret;
+ }
if (s->use_noise_coding) {
- ff_init_vlc_from_lengths(&s->hgain_vlc, HGAINVLCBITS, FF_ARRAY_ELEMS(ff_wma_hgain_hufftab),
- &ff_wma_hgain_hufftab[0][1], 2,
- &ff_wma_hgain_hufftab[0][0], 2, 1, -18, 0, avctx);
+ ret = ff_init_vlc_from_lengths(&s->hgain_vlc, HGAINVLCBITS,
+ FF_ARRAY_ELEMS(ff_wma_hgain_hufftab),
+ &ff_wma_hgain_hufftab[0][1], 2,
+ &ff_wma_hgain_hufftab[0][0], 2, 1,
+ -18, 0, avctx);
+ if (ret < 0)
+ return ret;
}
- if (s->use_exp_vlc)
- init_vlc(&s->exp_vlc, EXPVLCBITS, sizeof(ff_aac_scalefactor_bits), // FIXME move out of context
- ff_aac_scalefactor_bits, 1, 1,
- ff_aac_scalefactor_code, 4, 4, 0);
- else
+ if (s->use_exp_vlc) {
+ // FIXME move out of context
+ ret = init_vlc(&s->exp_vlc, EXPVLCBITS, sizeof(ff_aac_scalefactor_bits),
+ ff_aac_scalefactor_bits, 1, 1,
+ ff_aac_scalefactor_code, 4, 4, 0);
+ if (ret < 0)
+ return ret;
+ } else
wma_lsp_to_curve_init(s, s->frame_len);
avctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
--
2.27.0
More information about the ffmpeg-devel
mailing list