diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-01-13 03:51:39 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-01-13 16:17:08 +0100 |
commit | a0aa5c34a964ed74217d4e7908ec4bf9536876d6 (patch) | |
tree | 50bb5a8b6b4ac56f5ef0259c1e3953be657e6647 | |
parent | d63476347a486ae87ef5b1279fd813529a58849c (diff) | |
download | ffmpeg-a0aa5c34a964ed74217d4e7908ec4bf9536876d6.tar.gz |
avcodec/hevc: Check entry point arrays for malloc failure
Fixes null pointer dereference
Fixes: signal_sigsegv_e1d3b6_2192_DBLK_F_VIXS_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 22bfb4be284c12f33b9dac010713fe3ca6d974bf)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/hevc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c index befe2dec16..8ff51a3130 100644 --- a/libavcodec/hevc.c +++ b/libavcodec/hevc.c @@ -602,6 +602,11 @@ static int hls_slice_header(HEVCContext *s) sh->entry_point_offset = av_malloc(sh->num_entry_point_offsets * sizeof(int)); sh->offset = av_malloc(sh->num_entry_point_offsets * sizeof(int)); sh->size = av_malloc(sh->num_entry_point_offsets * sizeof(int)); + if (!sh->entry_point_offset || !sh->offset || !sh->size) { + sh->num_entry_point_offsets = 0; + av_log(s->avctx, AV_LOG_ERROR, "Failed to allocate memory\n"); + return AVERROR(ENOMEM); + } for (i = 0; i < sh->num_entry_point_offsets; i++) { int val = 0; for (j = 0; j < segments; j++) { |