avcodec/cavs: prevent out of array read
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 16 May 2014 01:02:57 +0000 (03:02 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 16 May 2014 01:13:27 +0000 (03:13 +0200)
The used value should not matter as long as its within the array
as it is multiplied by 0

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

index c5313eb..888f38b 100644 (file)
@@ -525,7 +525,7 @@ void ff_cavs_inter(AVSContext *h, enum cavs_mb mb_type)
 static inline void scale_mv(AVSContext *h, int *d_x, int *d_y,
                             cavs_vector *src, int distp)
 {
-    int den = h->scale_den[src->ref];
+    int den = h->scale_den[FFMAX(src->ref, 0)];
 
     *d_x = (src->x * distp * den + 256 + (src->x >> 31)) >> 9;
     *d_y = (src->y * distp * den + 256 + (src->y >> 31)) >> 9;