qdm2dec: check remaining input bits in the mainloop of qdm2_fft_decode_tones()
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 18 Nov 2011 16:56:24 +0000 (17:56 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 18 Nov 2011 20:05:12 +0000 (21:05 +0100)
This is neccessary but likely not sufficient to prevent out of array reads.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 14db3af4f26dad8e6ddf2147e96ccc710952ad4d)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/qdm2.c

index 144ce98..3aa9e5b 100644 (file)
@@ -1327,7 +1327,7 @@ static void qdm2_fft_decode_tones (QDM2Context *q, int duration, GetBitContext *
     local_int_10 = 1 << (q->group_order - duration - 1);
     offset = 1;
 
-    while (1) {
+    while (get_bits_left(gb)>0) {
         if (q->superblocktype_2_3) {
             while ((n = qdm2_get_vlc(gb, &vlc_tab_fft_tone_offset[local_int_8], 1, 2)) < 2) {
                 offset = 1;