h264_sei: Fix infinite loop.
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 26 Jan 2012 18:31:01 +0000 (19:31 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 26 Jan 2012 18:54:38 +0000 (19:54 +0100)
Fixes not yet fixed parts of CVE-2011-3946.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/h264_sei.c

index 374e53d..80d70e5 100644 (file)
@@ -169,11 +169,15 @@ int ff_h264_decode_sei(H264Context *h){
 
         type=0;
         do{
+            if (get_bits_left(&s->gb) < 8)
+                return -1;
             type+= show_bits(&s->gb, 8);
         }while(get_bits(&s->gb, 8) == 255);
 
         size=0;
         do{
+            if (get_bits_left(&s->gb) < 8)
+                return -1;
             size+= show_bits(&s->gb, 8);
         }while(get_bits(&s->gb, 8) == 255);