regression: xorg-server crash at "damageValidateGC"

Jeremy Huddleston Sequoia jeremyhu at macports.org
Tue May 7 11:13:46 PDT 2013


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 <noreply at macports.org>
> Subject: Re: [MacPorts] #38993: xorg-server, xorg-server-devel crash at "damageValidateGC"
> Date: May 7, 2013 7:52:06 AM PDT
> To: kurtjaeke at gmx.de, jeremyhu at macports.org
> Cc: macports-tickets at lists.macosforge.org
> Reply-To: macports-dev at lists.macosforge.org
> 
> #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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4145 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20130507/eb491a8e/attachment.bin>


More information about the xorg-devel mailing list