From: Michael Niedermayer <[email protected]>

Fixes state becoming inconsistent and a null pointer dereference.

CC: [email protected]
Bug-Id: CVE-2013-0860
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Vittorio Giovara <[email protected]>
---
 libavcodec/error_resilience.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c
index ae9ef68..73b69af 100644
--- a/libavcodec/error_resilience.c
+++ b/libavcodec/error_resilience.c
@@ -896,6 +896,12 @@ void ff_er_frame_end(MpegEncContext *s)
         return;
     };
 
+    if (s->picture_structure == PICT_FRAME &&
+        s->current_picture.f.linesize[0] != 
s->current_picture_ptr->f.linesize[0]) {
+        av_log(s->avctx, AV_LOG_ERROR, "Error concealment not possible, frame 
not fully initialized\n");
+        return;
+    }
+
     if (s->current_picture.f.motion_val[0] == NULL) {
         av_log(s->avctx, AV_LOG_ERROR, "Warning MVs not available\n");
 
-- 
1.8.5.2 (Apple Git-48)

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to