[PATCH] Fix locking bugs with XIAllowTouchEvents() and XIUngrabTouchBegin()

Jasper St. Pierre jstpierre at mecheye.net
Fri Jul 11 10:59:54 PDT 2014


On Fri, Jul 11, 2014 at 1:54 PM, <otaylor at redhat.com> wrote:

> From: "Owen W. Taylor" <otaylor at fishsoup.net>
>
> Fix two places where the display was double locked when an API
> function chained to an implementation that also locks the display.
> ---
>  src/XIAllowEvents.c | 6 +-----
>  src/XIPassiveGrab.c | 1 +
>  2 files changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/src/XIAllowEvents.c b/src/XIAllowEvents.c
> index c8d997a..b0be6bb 100644
> --- a/src/XIAllowEvents.c
> +++ b/src/XIAllowEvents.c
> @@ -92,11 +92,7 @@ XIAllowTouchEvents(Display *dpy, int deviceid, unsigned
> int touchid,
>      LockDisplay(dpy);
>      if (_XiCheckExtInit(dpy, XInput_2_2, extinfo) == -1)
>         return (NoSuchExtension);
> -
> -    status = _XIAllowEvents(dpy, deviceid, event_mode, CurrentTime,
> touchid, grab_window);
> -
>      UnlockDisplay(dpy);
> -    SyncHandle();
>
> -    return status;
> +    return _XIAllowEvents(dpy, deviceid, event_mode, CurrentTime,
> touchid, grab_window);
>

Shouldn't you remove the declaration for "status" here?


>  }
> diff --git a/src/XIPassiveGrab.c b/src/XIPassiveGrab.c
> index 88f1aff..c743516 100644
> --- a/src/XIPassiveGrab.c
> +++ b/src/XIPassiveGrab.c
> @@ -249,6 +249,7 @@ XIUngrabTouchBegin(Display* display, int deviceid,
> Window grab_window,
>      LockDisplay(display);
>      if (_XiCheckExtInit(display, XInput_2_2, extinfo) == -1)
>         return -1;
> +    UnlockDisplay(display);
>
>      return _XIPassiveUngrabDevice(display, deviceid,
> XIGrabtypeTouchBegin, 0,
>                                    grab_window, num_modifiers, modifiers);
> --
> 1.9.3
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>



-- 
  Jasper
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20140711/77ff3039/attachment.html>


More information about the xorg-devel mailing list