As has been identified this is a problem with
http://cgit.freedesktop.org/xorg/xserver/commit/?id=863d528a9f76d0e8f122aebf19f8564a4c67a938
. Specifically the reordering created seriously messes up the algorithm
in certain cases (causing offsets of the starting point for instance). I
examined what could possibly cause this error in the first place and the
only way I can see this drawing to an off-screen location is if, on the
last pass through the X_AXIS while look the !mask if is triggered,
pushing the dst out of the range (presumably the last point drawn was
the lower right corner, or some other pixel that one to the right of
would be a segfault pixel). Then the e>=0 if is triggered which causes
another write to this invalid location. However, bits will be 0 at this
point because it was just set to 0, therefore the write can be masked by
an if (bits) which will always fail in this off-screen condition and
therefore save us from a write to an invalid location. There is no
similar condition that can cause a write to an invalid location when the
axis is Y_AXIS because the only write is at the very top of the loop.
Therefore, the sum total of the following patch is to revert
863d528a9f76d0e8f122aebf19f8564a4c67a938 and add the if around the
second write in the X_AXIS while statement.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1161498

Title:
  Title bar not showing when using Greybird

To manage notifications about this bug go to:
https://bugs.launchpad.net/xorg-server/+bug/1161498/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to