crash after setting root background to None, then setting color - patch for review

Daniel Stone daniel at fooishbar.org
Sat May 21 05:28:36 PDT 2011


Hi,

On Tue, May 17, 2011 at 08:22:02PM +0200, Marko Macek wrote:
> Please review/apply this patch:
> 
> diff -ru xorg-server-1.10.1/dix/window.c xorg-server-1.10.1-new/dix/window.c
> --- xorg-server-1.10.1/dix/window.c    2011-02-25 04:27:25.000000000 +0100
> +++ xorg-server-1.10.1-new/dix/window.c    2011-05-15 15:15:03.912919996 +0200
> @@ -474,6 +474,7 @@
>          pWin->background.pixel = pScreen->whitePixel;
>          backFlag |= CWBackPixmap;
>      } else {
> +    pWin->backgroundState = BackgroundPixel;
>      if (whiteRoot)
>              pWin->background.pixel = pScreen->whitePixel;
>          else
> @@ -972,6 +973,7 @@
>      else if (party_like_its_1989)
>      MakeRootTile(pWin);
>      else {
> +    pWin->backgroundState = BackgroundPixel;
>      if (whiteRoot)
>          pWin->background.pixel = pScreen->whitePixel;
>      else

Looks good to me.

> The code could also be made more robust (check for pixmap != None, set it to None after Destroy). Should I do it?

Well, InitRootWindow is only called when the root is first being
created, and the only caller of SetRootWindowBackground, being
ChangeWindowAttributes, already destroys the background pixmap if it's
not None.  So it looks like it should be fine already.

I've merged this into my tree and it should get picked up for master
soon.  Thanks!

Cheers,
Daniel


More information about the xorg-devel mailing list