On Tue, 11 May 2010 14:12:52 -0400, Adam Jackson <[email protected]> wrote:

> I just want it to not trivially crash my server.  I could care less
> about correctness for this.

Then I think the only needed fix is to check for the trivial loop:

index 48693b8..78e8c9b 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -1131,6 +1131,8 @@ ChangePicture (PicturePtr pPicture,
                    pAlpha = NEXT_PTR(PicturePtr);
                if (!error)
                {
+                   if (pAlpha && pAlpha->pDrawable == pPicture->pDrawable)
+                       pAlpha = NULL;
                    if (pAlpha && pAlpha->pDrawable->type == DRAWABLE_PIXMAP)
                        pAlpha->refcnt++;
                    if (pPicture->alphaMap)

Is there somewhere in the server that is recursing through the alphaMap?
fb doesn't, and I don't know of any acceleration code that deals with alphaMap.

-- 
[email protected]

Attachment: pgpANSbdxZpGe.pgp
Description: PGP signature

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to