Janne Grunau <[email protected]> writes:

> Writes past the end of the destination buffer were occuring when its
> stride was smaller than the stride of the source. Fixes Bug #183.
> ---
>  libswscale/swscale_unscaled.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
> index 34b0f24..7c339b6 100644
> --- a/libswscale/swscale_unscaled.c
> +++ b/libswscale/swscale_unscaled.c
> @@ -285,9 +285,10 @@ static int packed_16bpc_bswap(SwsContext *c, const 
> uint8_t *src[],
>      int dststr = dstStride[0] >> 1;
>      uint16_t       *dstPtr =       (uint16_t *) dst[0];
>      const uint16_t *srcPtr = (const uint16_t *) src[0];
> +    int min_stride         = FFMIN(srcstr, dststr);
>
>      for (i = 0; i < srcSliceH; i++) {
> -        for (j = 0; j < srcstr; j++) {
> +        for (j = 0; j < min_stride; j++) {
>              dstPtr[j] = av_bswap16(srcPtr[j]);
>          }
>          srcPtr += srcstr;
> -- 

Why is this using stride and not width?

-- 
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to