summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleg Oshmyan <chortos@inbox.lv>2013-12-17 21:39:23 +0200
committerOleg Oshmyan <chortos@inbox.lv>2013-12-17 21:45:19 +0200
commit02487cc506e9f59eb7d824e30c4b8a577fd71b15 (patch)
tree30e41a5fd114b34f7aa08a84b21c9003cfdb9330
parentf226ef125da564ead8e6188c897b8ba328b47652 (diff)
downloadlibass-02487cc506e9f59eb7d824e30c4b8a577fd71b15.tar.bz2
libass-02487cc506e9f59eb7d824e30c4b8a577fd71b15.tar.xz
Fix mismatched/out-of-bounds accesses in vertical \blur
-rw-r--r--libass/ass_bitmap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libass/ass_bitmap.c b/libass/ass_bitmap.c
index 6dbc30c..5310481 100644
--- a/libass/ass_bitmap.c
+++ b/libass/ass_bitmap.c
@@ -365,13 +365,13 @@ static void ass_gauss_blur(unsigned char *buffer, unsigned *tmp2,
unsigned *srcp = t + y * (width + 1) + 1;
int src = *srcp;
if (src) {
- register unsigned *dstp = srcp - 1 + width + 1;
+ register unsigned *dstp = srcp - 1 - y * (width + 1);
const int src2 = (src + 32768) >> 16;
unsigned *m3 = m2 + src2 * mwidth;
int mx;
*srcp = 32768;
- for (mx = r - 1; mx < mwidth; mx++) {
+ for (mx = r - y; mx < mwidth; mx++) {
*dstp += m3[mx];
dstp += width + 1;
}