Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-04-03 18:45:17 +0300
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-04-03 23:26:51 +0300
commite93875b756b575438d7b825332739719d4fbc600 (patch)
tree6dec9a622c82015e40d2c6eefb6945532cd5508b /libavcodec/wmavoice.c
parenta5b2f06b0c69221e375edd918a335c68b33d5667 (diff)
avcodec/wmavoice: Check operations that can fail
There might be segfaults on failure. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec/wmavoice.c')
-rw-r--r--libavcodec/wmavoice.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c
index e76807faa5..2cb4219b84 100644
--- a/libavcodec/wmavoice.c
+++ b/libavcodec/wmavoice.c
@@ -367,7 +367,7 @@ static av_cold void wmavoice_flush(AVCodecContext *ctx)
static av_cold int wmavoice_decode_init(AVCodecContext *ctx)
{
static AVOnce init_static_once = AV_ONCE_INIT;
- int n, flags, pitch_range, lsp16_flag;
+ int n, flags, pitch_range, lsp16_flag, ret;
WMAVoiceContext *s = ctx->priv_data;
ff_thread_once(&init_static_once, wmavoice_init_static_data);
@@ -395,10 +395,11 @@ static av_cold int wmavoice_decode_init(AVCodecContext *ctx)
s->spillover_bitsize = 3 + av_ceil_log2(ctx->block_align);
s->do_apf = flags & 0x1;
if (s->do_apf) {
- ff_rdft_init(&s->rdft, 7, DFT_R2C);
- ff_rdft_init(&s->irdft, 7, IDFT_C2R);
- ff_dct_init(&s->dct, 6, DCT_I);
- ff_dct_init(&s->dst, 6, DST_I);
+ if ((ret = ff_rdft_init(&s->rdft, 7, DFT_R2C)) < 0 ||
+ (ret = ff_rdft_init(&s->irdft, 7, IDFT_C2R)) < 0 ||
+ (ret = ff_dct_init (&s->dct, 6, DCT_I)) < 0 ||
+ (ret = ff_dct_init (&s->dst, 6, DST_I)) < 0)
+ return ret;
ff_sine_window_init(s->cos, 256);
memcpy(&s->sin[255], s->cos, 256 * sizeof(s->cos[0]));