Re: [hackers] [tabbed][PATCH] Fix clients BadDrawable at cleanup with multiple tabs

From: Hiltjo Posthuma <hiltjo_AT_codemadness.org>
Date: Wed, 10 Jun 2020 22:10:02 +0200

On Thu, Jun 04, 2020 at 04:01:17PM +0500, Nikita Zlobin wrote:
> unmanage() after killclient() causes at least one BadDrawable from client.
> For urxvtd it can crash entire daemon.
> ---
> tabbed.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tabbed.c b/tabbed.c
> index 4ee4277..6b53d94 100644
> --- a/tabbed.c
> +++ b/tabbed.c
> _AT_@ -219,10 +219,10 @@ cleanup(void)
> focus(i);
> killclient(NULL);
> XReparentWindow(dpy, clients[i]->win, root, 0, 0);
> - unmanage(i);
> }
> free(clients);
> clients = NULL;
> + XSync(dpy, False);
>
> XFreePixmap(dpy, dc.drawable);
> XFreeGC(dpy, dc.gc);
> --
> 2.26.2
>
>

Hi,

Is this the correct way to fix it or just a workaround?

-- 
Kind regards,
Hiltjo
Received on Wed Jun 10 2020 - 22:10:02 CEST

This archive was generated by hypermail 2.3.0 : Wed Jun 10 2020 - 22:12:31 CEST