OSDN Git Service

swscale: fix crash in 8-bpc bilinear output without alpha.
authorRonald S. Bultje <rsbultje@gmail.com>
Fri, 8 Jul 2011 19:28:28 +0000 (12:28 -0700)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 11 Jul 2011 01:51:46 +0000 (03:51 +0200)
We accessed the alpha array even it wasn't used and didn't
exist, hence leading to a NULL pointer segfault.
(cherry picked from commit bf2cba453244a74331238a472fe0e309f116f4d9)

libswscale/swscale.c

index 15db836..b9c619c 100644 (file)
@@ -1247,7 +1247,8 @@ yuv2rgb_2_c_template(SwsContext *c, const int16_t *buf[2],
     const int16_t *buf0  = buf[0],  *buf1  = buf[1],
                   *ubuf0 = ubuf[0], *ubuf1 = ubuf[1],
                   *vbuf0 = vbuf[0], *vbuf1 = vbuf[1],
-                  *abuf0 = abuf[0], *abuf1 = abuf[1];
+                  *abuf0 = hasAlpha ? abuf[0] : NULL,
+                  *abuf1 = hasAlpha ? abuf[1] : NULL;
     int  yalpha1 = 4095 - yalpha;
     int uvalpha1 = 4095 - uvalpha;
     int i;