--- cairo-1.2.4/src/cairo-xlib-surface.c +++ cairo-1.2.4/src/cairo-xlib-surface.c.fix-endianess-mismatch-crasher @@ -2450,7 +2450,7 @@ _cairo_xlib_surface_add_glyph (Display * } n = new; d = data; - while ((c -= 4) >= 0) + while (c >= 4) { n[3] = d[0]; n[2] = d[1]; @@ -2458,6 +2458,7 @@ _cairo_xlib_surface_add_glyph (Display * n[0] = d[3]; d += 4; n += 4; + c -= 4; } data = new; }