[PATCH 2/2] render: Fix byteswapping of gradient stops

Soeren Sandmann sandmann at daimi.au.dk
Wed Nov 3 18:44:48 PDT 2010


Andrea Canciani <ranma42 at gmail.com> writes:

> The function swapStops repeatedly swaps the color components as
> CARD16, but incorrectly steps over them as if they were CARD32.
> 
> This causes half of the stops not to be swapped at all and some
> unrelated data be swapped instead.
> ---
>  render/render.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/render/render.c b/render/render.c
> index 00241f9..85a4392 100644
> --- a/render/render.c
> +++ b/render/render.c
> @@ -2552,8 +2552,8 @@ static void swapStops(void *stuff, int num)
>      }
>      colors = (CARD16 *)(stops);
>      for (i = 0; i < 4*num; ++i) {
> -        swaps(stops, n);
> -        ++stops;
> +        swaps(colors, n);
> +        ++colors;
>      }
>  }

Reviewed-by: Soren Sandmann <sandmann at daimi.au.dk>


Soren


More information about the xorg-devel mailing list