avcodec/cook: fix deadlock by using get_unary()
authorPaul B Mahol <onemda@gmail.com>
Wed, 30 Oct 2013 13:24:45 +0000 (13:24 +0000)
committerPaul B Mahol <onemda@gmail.com>
Wed, 30 Oct 2013 13:26:55 +0000 (13:26 +0000)
Fixes #3089.
Reported-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavcodec/cook.c

index 5b9f34a..402093c 100644 (file)
@@ -51,6 +51,7 @@
 #include "fft.h"
 #include "internal.h"
 #include "sinewin.h"
+#include "unary.h"
 
 #include "cookdata.h"
 
@@ -331,11 +332,7 @@ static void decode_gain_info(GetBitContext *gb, int *gaininfo)
 {
     int i, n;
 
-    while (get_bits1(gb)) {
-        /* NOTHING */
-    }
-
-    n = get_bits_count(gb) - 1;     // amount of elements*2 to update
+    n = get_unary(gb, 0, get_bits_left(gb));     // amount of elements*2 to update
 
     i = 0;
     while (n--) {