Mercurial > libavcodec.hg
diff mpeg12.c @ 1182:38e8b8f331cb libavcodec
some checks to avoid segfaults if the decoder is feeded with junk
author | michaelni |
---|---|
date | Fri, 11 Apr 2003 22:53:03 +0000 |
parents | 4c2339f3863a |
children | 2e06398e4647 |
line wrap: on
line diff
--- a/mpeg12.c Fri Apr 11 21:15:17 2003 +0000 +++ b/mpeg12.c Fri Apr 11 22:53:03 2003 +0000 @@ -1858,6 +1858,12 @@ } }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 @@ /* 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);