aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Aimar <fenrir@videolan.org>2011-10-02 16:06:37 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-10-02 21:29:51 +0200
commitcf0052931d5776eafacd7771bc9c40da86e31b09 (patch)
tree41cfa0a1a502cb746498311f7a09b2fdda479722
parent6b998720b29b5fd1c94b01903b0d05c1141fb0c2 (diff)
downloadffmpeg-cf0052931d5776eafacd7771bc9c40da86e31b09.tar.gz
h264: do not let invalid values in h->ref_count on ff_h264_decode_ref_pic_list_reordering() errors.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 2428b53f6d306d8d71dec34fa7b0af733d76cfac)
-rw-r--r--libavcodec/h264.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index a889f422e1..dcca6bd73c 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2907,8 +2907,10 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
ff_h264_fill_default_ref_list(h);
}
- if(h->slice_type_nos!=AV_PICTURE_TYPE_I && ff_h264_decode_ref_pic_list_reordering(h) < 0)
+ if(h->slice_type_nos!=AV_PICTURE_TYPE_I && ff_h264_decode_ref_pic_list_reordering(h) < 0) {
+ h->ref_count[1]= h->ref_count[0]= 0;
return -1;
+ }
if(h->slice_type_nos!=AV_PICTURE_TYPE_I){
s->last_picture_ptr= &h->ref_list[0][0];