OSDN Git Service

swscale: Fix use of uninitialized values
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 2 Jun 2011 17:26:40 +0000 (19:26 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 2 Jun 2011 19:03:54 +0000 (21:03 +0200)
(bug probably introduced from a marge of libav)

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

index 3555883..6c85487 100644 (file)
@@ -419,6 +419,8 @@ static inline void hyscale_fast_c(SwsContext *c, int16_t *dst, int dstWidth,
         dst[i]= (src[xx]<<7) + (src[xx+1] - src[xx])*xalpha;
         xpos+=xInc;
     }
+    for (i=dstWidth-1; (i*xInc)>>16 >=srcW-1; i--)
+        dst[i] = src[srcW-1]*128;
 }
 
       // *** horizontal scale Y line to temp buffer
@@ -465,6 +467,10 @@ static inline void hcscale_fast_c(SwsContext *c, int16_t *dst1, int16_t *dst2,
         dst2[i]=(src2[xx]*(xalpha^127)+src2[xx+1]*xalpha);
         xpos+=xInc;
     }
+    for (i=dstWidth-1; (i*xInc)>>16 >=srcW-1; i--) {
+        dst1[i] = src1[srcW-1]*128;
+        dst2[i] = src2[srcW-1]*128;
+    }
 }
 
 inline static void hcscale_c(SwsContext *c, uint16_t *dst1, uint16_t *dst2, int dstWidth,