--- libavcodec/h264.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 5d4ce90..0da8ae4 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -173,11 +173,13 @@ const uint8_t *ff_h264_decode_nal(H264Context *h, const uint8_t *src, if(src[i]) continue; if(i>0 && src[i-1]==0) i--; #endif - if(i+2<length && src[i+1]==0 && src[i+2]<=3){ - if(src[i+2]!=3){ + if (i + 2 < length && src[i + 1] == 0 && src[i + 2] <= 3) { + if (src[i+2] != 3) { /* startcode, so we must be past the end */ - length=i; - } + length = i; + } else if (!(src[i+2] & 1)) + av_dlog(h->avctx, "forbidden three byte sequence 0x00000%d\n", + src[i+2] & 2); break; } i-= RS; -- 1.7.8 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel