proresdec: Fix end condition

Fixes out of array writes
No FFmpeg release is affected by this

This also fixes some artifacts

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-05-22 19:44:12 +02:00
parent df3ee7b9a9
commit 30df9789a9
3 changed files with 3 additions and 3 deletions

View File

@ -458,7 +458,7 @@ static void unpack_alpha(GetBitContext *gb, uint16_t *dst, int num_coeffs,
} else {
dst[idx++] = (alpha_val << 2) | (alpha_val >> 6);
}
if (idx == num_coeffs - 1)
if (idx >= num_coeffs)
break;
} while (get_bits_left(gb)>0 && get_bits1(gb));
val = get_bits(gb, 4);

View File

@ -496,7 +496,7 @@ static void unpack_alpha(GetBitContext *gb, uint16_t *dst, int num_coeffs,
dst[idx++] = alpha_val >> 6;
else
dst[idx++] = (alpha_val << 2) | (alpha_val >> 6);
if (idx == num_coeffs - 1)
if (idx >= num_coeffs)
break;
} while (get_bits1(gb));
val = get_bits(gb, 4);

View File

@ -1,5 +1,5 @@
#tb 0: 1/25
#tb 1: 1/48000
0, 0, 0, 1, 16588800, 0x87f98f3c
0, 0, 0, 1, 16588800, 0x20778f5e
1, 0, 0, 1024, 4096, 0x00000000
1, 1024, 1024, 896, 3584, 0x00000000