summaryrefslogtreecommitdiff
path: root/libavcodec/wmadec.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-05-06 17:28:50 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-05-12 06:00:13 +0200
commitbd1cbb5427c156f40f1a94c57dac0cf667f34b7b (patch)
tree76c240bd8bccdc491fbbf474ae1c27d05c80973d /libavcodec/wmadec.c
parent35381d2201d794d337e34f1ddcc6cc38d7e5c238 (diff)
avcodec/wmadec: Check operations that can fail
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec/wmadec.c')
-rw-r--r--libavcodec/wmadec.c31
1 files 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;