[PATCH v2] XIGrabDevice: Unlock display in error path.

Peter Hutterer peter.hutterer at who-t.net
Mon Nov 3 15:16:03 PST 2014


On Mon, Nov 03, 2014 at 12:43:40PM +0200, Michal Srb wrote:
> Signed-off-by: Michal Srb <msrb at suse.com>

pushed, thanks

Cheers,
   Peter

> ---
>  src/XIGrabDevice.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/src/XIGrabDevice.c b/src/XIGrabDevice.c
> index a8c5697..22f4ea1 100644
> --- a/src/XIGrabDevice.c
> +++ b/src/XIGrabDevice.c
> @@ -53,14 +53,20 @@ XIGrabDevice(Display* dpy, int deviceid, Window grab_window, Time time,
>  
>      if (mask->mask_len > INT_MAX - 3 ||
>          (mask->mask_len + 3)/4 >= 0xffff)
> -        return BadValue;
> +    {
> +        reply.status = BadValue;
> +        goto out;
> +    }
>  
>      /* mask->mask_len is in bytes, but we need 4-byte units on the wire,
>       * and they need to be padded with 0 */
>      len = (mask->mask_len + 3)/4;
>      buff = calloc(4, len);
>      if (!buff)
> -        return BadAlloc;
> +    {
> +        reply.status =  BadAlloc;
> +        goto out;
> +    }
>  
>      GetReq(XIGrabDevice, req);
>      req->reqType  = extinfo->codes->major_opcode;
> @@ -83,6 +89,7 @@ XIGrabDevice(Display* dpy, int deviceid, Window grab_window, Time time,
>      if (_XReply(dpy, (xReply *)&reply, 0, xTrue) == 0)
>  	reply.status = GrabSuccess;
>  
> +out:
>      UnlockDisplay(dpy);
>      SyncHandle();
>  
> -- 
> 2.1.1
> 


More information about the xorg-devel mailing list