regression: xorg-server crash at "damageValidateGC"
Jeremy Huddleston Sequoia
jeremyhu at freedesktop.org
Wed May 15 11:19:54 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 …
It seems likely that pDamage == NULL is resulting in pGCPriv->ops = NULL (instead of pGCPriv->ops = pGC->ops), and that pGCPriv->ops == NULL is resulting in 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: 4154 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20130515/b10fea76/attachment.bin>
More information about the xorg-devel
mailing list