From 37b787f124a3a5025253858d1dd1ec30f1e263e4 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Fri, 11 Apr 2003 22:53:03 +0000
Subject: [PATCH] some checks to avoid segfaults if the decoder is feeded with
 junk

Originally committed as revision 1757 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/mpeg12.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c
index c5b39e1c927..7250226fd3e 100644
--- a/libavcodec/mpeg12.c
+++ b/libavcodec/mpeg12.c
@@ -1858,6 +1858,12 @@ static int mpeg_decode_slice(AVCodecContext *avctx,
         }
       }else{ //second field
             int i;
+            
+            if(!s->current_picture_ptr){
+                fprintf(stderr, "first field missing\n");
+                return -1;
+            }
+            
             for(i=0; i<4; i++){
                 s->current_picture.data[i] = s->current_picture_ptr->data[i];
                 if(s->picture_structure == PICT_BOTTOM_FIELD){
@@ -2266,6 +2272,8 @@ static int mpeg_decode_frame(AVCodecContext *avctx,
                         /* skip everything if we are in a hurry>=5 */
                         if(avctx->hurry_up>=5) break;
 
+                        if (!s->mpeg_enc_ctx_allocated) break;
+
                         ret = mpeg_decode_slice(avctx, picture,
                                                 start_code, s->buffer, input_size);
 
-- 
GitLab