diff options
author | Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> | 2016-11-04 19:00:01 +0100 |
---|---|---|
committer | Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> | 2016-11-04 20:34:51 +0100 |
commit | 24d20496d2e6e1df6456c5231d892269dd1fcf38 (patch) | |
tree | 12173ada798c55bdb4629b2bc3e16809c6c0aef5 /libavcodec/diracdec.c | |
parent | 8a4ea9644833d43fdfe8579c0cb569f8a0930206 (diff) | |
download | ffmpeg-24d20496d2e6e1df6456c5231d892269dd1fcf38.tar.gz |
diracdec: clear slice_params_num_buf on allocation failure
Otherwise it can be non-zero next time decode_lowdelay is called, causing
slice_params_buf not to be allocated, leading to a NULL pointer dereference.
The problem was introduced in commit
dcad4677d637cd2f701917e38361fa96b8c9a418.
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Diffstat (limited to 'libavcodec/diracdec.c')
-rw-r--r-- | libavcodec/diracdec.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/diracdec.c b/libavcodec/diracdec.c index 5c669ffdee..bb314d0df6 100644 --- a/libavcodec/diracdec.c +++ b/libavcodec/diracdec.c @@ -910,6 +910,7 @@ static int decode_lowdelay(DiracContext *s) s->slice_params_buf = av_realloc_f(s->slice_params_buf, s->num_x * s->num_y, sizeof(DiracSlice)); if (!s->slice_params_buf) { av_log(s->avctx, AV_LOG_ERROR, "slice params buffer allocation failure\n"); + s->slice_params_num_buf = 0; return AVERROR(ENOMEM); } s->slice_params_num_buf = s->num_x * s->num_y; |