Commit c6484410 authored by Michal Srb's avatar Michal Srb Committed by Peter Hutterer

XIGrabDevice: Unlock display in error path.

Signed-off-by: default avatarMichal Srb <msrb@suse.com>
Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
parent 29c77457
......@@ -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();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment