avcodec/h264: fix code that blindly dereferences NULL DPB
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 10 Dec 2013 22:41:50 +0000 (23:41 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 13 Jan 2014 15:06:13 +0000 (16:06 +0100)
Fixes mixed flushing and decoding NULL packets
Found-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d9339ab55373b12f078a3e3f1e294d8ff78652dd)

Conflicts:

libavcodec/h264.c

libavcodec/h264.c

index 1b531f5..1d2570b 100644 (file)
@@ -1839,7 +1839,7 @@ static int decode_update_thread_context(AVCodecContext *dst,
 
     for (i = 0; h->DPB && i < MAX_PICTURE_COUNT; i++) {
         unref_picture(h, &h->DPB[i]);
-        if (h1->DPB[i].f.data[0] &&
+        if (h1->DPB && h1->DPB[i].f.data[0] &&
             (ret = ref_picture(h, &h->DPB[i], &h1->DPB[i])) < 0)
             return ret;
     }