]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
memcpy considering output width, not src linesize, fix segv with av_picture_pad
authorbcoudurier <bcoudurier@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 1 Jun 2008 02:28:33 +0000 (02:28 +0000)
committerbcoudurier <bcoudurier@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 1 Jun 2008 02:28:33 +0000 (02:28 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@13594 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/imgconvert.c

index 663095435e7ab57e2299cc67d74f99bf69d85836..6ef00c9100d8651eeba87bfcaf8c4da9b02c86e5 100644 (file)
@@ -2063,7 +2063,7 @@ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,
             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 @@ int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width,
             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];
             }