[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