Hey ajax,

I haven't had the resources to look at many X11 issues these past few months, 
but someone bisected a crash to one of your changes back in September (see 
below).  It looks like the issue is with the first hunk of 
http://cgit.freedesktop.org/xorg/xserver/commit/?id=4dc2a76740d921c824a4d8193f39dd373475f02a
 … likely that pDamage == NULL is resulting in pGCPriv->ops = NULL instead of 
pGCPriv->ops = pGC->ops, and that pGCPriv->ops == NULL is causing the crash 
later.

Thoughts?

--Jeremy

Begin forwarded message:

> From: MacPorts <[email protected]>
> Subject: Re: [MacPorts] #38993: xorg-server, xorg-server-devel crash at 
> "damageValidateGC"
> Date: May 7, 2013 7:52:06 AM PDT
> To: [email protected], [email protected]
> Cc: [email protected]
> Reply-To: [email protected]
> 
> #38993: xorg-server, xorg-server-devel crash at "damageValidateGC"
> --------------------------------+------------------------
>  Reporter:  kurtjaeke@…        |      Owner:  jeremyhu@…
>      Type:  defect             |     Status:  new
>  Priority:  Normal             |  Milestone:
> Component:  ports              |    Version:  2.1.3
> Resolution:                     |   Keywords:
>      Port:  xorg-server-devel  |
> --------------------------------+------------------------
> 
> Comment (by kurtjaeke@…):
> 
> I played a little with "git bisect".
> 
> Upstream commit 4dc2a76740d921c824a4d8193f39dd373475f02a
> ("http://cgit.freedesktop.org/xorg/xserver/commit/?id=4dc2a76740d921c824a4d8193f39dd373475f02a";)
> causes the problems I see. '''Reverting''' the following part of the first
> hunk makes this issue go away for me:
> {{{
> diff --git a/miext/damage/damage.c b/miext/damage/damage.c
> index 2d2b422..a98c20e 100644
> --- a/miext/damage/damage.c
> +++ b/miext/damage/damage.c
> @@ -436,9 +436,13 @@ damageCreateGC(GCPtr pGC)
> static void
> damageValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable)
> {
> DAMAGE_GC_FUNC_PROLOGUE(pGC);
> (*pGC->funcs->ValidateGC) (pGC, changes, pDrawable);
> - pGCPriv->ops = pGC->ops; /* just so it's not NULL */
> + if (pDamage)
> + pGCPriv->ops = pGC->ops; /* so it's not NULL, so FUNC_EPILOGUE does work
> */
> + else
> + pGCPriv->ops = NULL;
> DAMAGE_GC_FUNC_EPILOGUE(pGC);
> }
> }}}
> This is where my investigation stops.
> 
> What's next?
> 
> -- 
> Ticket URL: <https://trac.macports.org/ticket/38993#comment:7>
> MacPorts <http://www.macports.org/>
> Ports system for OS X

Attachment: smime.p7s
Description: S/MIME cryptographic 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