# HG changeset patch # User bcoudurier # Date 1212287313 0 # Node ID cc2c5a21a0eb452d82914cab94c52abf71ae2710 # Parent c4e2814433107922a46e10d6810886fc2696883c memcpy considering output width, not src linesize, fix segv with av_picture_pad diff -r c4e281443310 -r cc2c5a21a0eb imgconvert.c --- a/imgconvert.c Sun Jun 01 02:21:53 2008 +0000 +++ b/imgconvert.c Sun Jun 01 02:28:33 2008 +0000 @@ -2063,7 +2063,7 @@ uint8_t *iptr = src->data[i]; optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) + (padleft >> x_shift); - memcpy(optr, iptr, src->linesize[i]); + memcpy(optr, iptr, (width - padleft - padright) >> x_shift); iptr += src->linesize[i]; optr = dst->data[i] + dst->linesize[i] * (padtop >> y_shift) + (dst->linesize[i] - (padright >> x_shift)); @@ -2071,7 +2071,7 @@ for (y = 0; y < yheight; y++) { memset(optr, color[i], (padleft + padright) >> x_shift); memcpy(optr + ((padleft + padright) >> x_shift), iptr, - src->linesize[i]); + (width - padleft - padright) >> x_shift); iptr += src->linesize[i]; optr += dst->linesize[i]; }