[PATCH] dix/window: catch illegal window reconfiguration for composited windows. (v2)

Keith Packard keithp at keithp.com
Wed Jun 2 22:24:53 PDT 2010


On Thu, 3 Jun 2010 14:44:04 +1000, Dave Airlie <airlied at gmail.com> wrote:

> I think its the only possible fix without breaking ABI, which is a
> concern for anyone shipping this in a server that is released, which
> is everyone who probably cares.

Checking for obviously bogus dimensions won't fix the case where the
pixmap allocation simply fails due to lack of memory though, and that
seems far more likely than a client asking for a window > 32767 in
size.

From my brief perusal of the code, the server depends on the pixmap
matching the borderSize of the window; the clip lists for the window
aren't limited to the pixmap size. Which means that if the pixmap is too
small, the software rendering code (at least) will walk outside of that
storage.

> If we break ABI then return a Bool from ConfigNotify might work and
> I'll investigate that.

ConfigNotify is new for 1.9, so we can change that at will.

For older servers, I suggest that we patch compResizeWindow et al to
smash the window geometry to match the old pixmap if the allocation
fails; at least the server won't crash.

-- 
keith.packard at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100602/5eb890ac/attachment.pgp>


More information about the xorg-devel mailing list