[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