[FFmpeg-cvslog] avformat/bink: Check return value of av_add_index_entry()

Michael Niedermayer git at videolan.org
Sun Feb 23 17:46:59 CET 2014


ffmpeg | branch: release/2.1 | Michael Niedermayer <michaelni at gmx.at> | Mon Feb 17 23:44:49 2014 +0100| [c8d363a3593a6ba5390ebecde720b71fbc4d6fbb] | committer: Michael Niedermayer

avformat/bink: Check return value of av_add_index_entry()

Fixes null pointer dereference
Fixes: cdbf15cbd0a27cee958dd0b8800e452e-signal_sigsegv_737991_2083_cov_317652874_LBSTART.BIK
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit c57fc97e956a52edc94a38ff0ecd3058b44c15b7)

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c8d363a3593a6ba5390ebecde720b71fbc4d6fbb
---

 libavformat/bink.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavformat/bink.c b/libavformat/bink.c
index 6db73cc..b9c853c 100644
--- a/libavformat/bink.c
+++ b/libavformat/bink.c
@@ -79,6 +79,7 @@ static int read_header(AVFormatContext *s)
     uint32_t pos, next_pos;
     uint16_t flags;
     int keyframe;
+    int ret;
 
     vst = avformat_new_stream(s, NULL);
     if (!vst)
@@ -177,8 +178,9 @@ static int read_header(AVFormatContext *s)
             av_log(s, AV_LOG_ERROR, "invalid frame index table\n");
             return AVERROR(EIO);
         }
-        av_add_index_entry(vst, pos, i, next_pos - pos, 0,
-                           keyframe ? AVINDEX_KEYFRAME : 0);
+        if ((ret = av_add_index_entry(vst, pos, i, next_pos - pos, 0,
+                                      keyframe ? AVINDEX_KEYFRAME : 0)) < 0)
+            return ret;
     }
 
     avio_skip(pb, 4);



More information about the ffmpeg-cvslog mailing list