[PATCH] Initialize event_notify after allocating the memory for it.

Barton C Massey bart at cs.pdx.edu
Sat Jan 31 13:38:47 PST 2009


Thanks hugely for this catch, Brian!  Looks like one of
those hard-to-catch things where most of the time it would
come back 0, which on most machines is a proper
initialization.

Pushed.

    Bart Massey
    bart at cs.pdx.edu


In message <1233427071-19581-2-git-send-email-brian at xyzw.org> you wrote:
> An uninitialized or otherwise invalid condition variable can apparently
> cause a hang in pthread_cond_broadcast. Ekiga, openoffice, and xine
> at least are freezing as a result of event_notify never being initialized.
> 
> Signed-off-by: Brian Rogers <brian at xyzw.org>
> ---
>  src/xcb_disp.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/src/xcb_disp.c b/src/xcb_disp.c
> index d976064..584380c 100644
> --- a/src/xcb_disp.c
> +++ b/src/xcb_disp.c
> @@ -94,6 +94,9 @@ int _XConnectXCB(Display *dpy, _Xconst char *display, char **fullnamep, int *scr
>  	dpy->xcb->next_xid = xcb_generate_id(dpy->xcb->connection);
>  
>  	dpy->xcb->event_notify = xcondition_malloc();
> +	if (!dpy->xcb->event_notify)
> +		return 0;
> +	xcondition_init(dpy->xcb->event_notify);
>  	return !xcb_connection_has_error(c);
>  }
>  
> -- 
> 1.6.0.4
> 



More information about the xorg mailing list