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

Andrea Canciani ranma42 at gmail.com
Tue Nov 2 12:10:32 PDT 2010


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;
     }
 }
 
-- 
1.7.1



More information about the xorg-devel mailing list