[Xcb] Bug in image handling on PPC

Ulrich Eckhardt doomster at knuut.de
Wed Jul 30 21:34:14 PDT 2008


Short update on the matter:

I have found that swap_image is called with byte_order={3,2,1,0} but with a 
unit_bytes=1. Somehow, that doesn't make sense to me, I'd even go so far that 
when unit_bytes=1, the only possible byte order is {0} (the other three 
values are irrelevant) and when unit_bytes=2 the two possible ones would be 
{0,1} and {1,0}. Replacing the byte_order with {0} fixes my problems.



Further, inside function swap_image(), there is this code:

   if (d > dst_stride)
       continue;

This doesn't make sense to me. 'd' is the computed offset to the startaddress 
of the current destination line. This code seems to check if the destination 
offset is out of bounds, but IMHO it fails for two reasons:
1. It should be >=, i.e. a classical off-by-one error.
2. If this applies, I would say that something went wrong anyway, i.e. the 
target image is simply not the right size.

Uli


More information about the Xcb mailing list