Xi: fix XI2 passive grab reply length calculation

If modifiers failed, the reply length was 4 bytes too short.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit 33fee13361)
This commit is contained in:
Peter Hutterer 2011-03-08 14:41:21 +10:00 committed by Jeremy Huddleston
parent 09f6d85b5b
commit a96fd08b40

View file

@ -194,7 +194,7 @@ ProcXIPassiveGrabDevice(ClientPtr client)
info->status = status;
info->modifiers = *modifiers;
rep.num_modifiers++;
rep.length++;
rep.length += bytes_to_int32(sizeof(xXIGrabModifierInfo));
}
}
@ -202,7 +202,7 @@ ProcXIPassiveGrabDevice(ClientPtr client)
if (rep.num_modifiers)
{
client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
WriteSwappedDataToClient(client, rep.num_modifiers * 4, (char*)modifiers_failed);
WriteSwappedDataToClient(client, rep.length * 4, (char*)modifiers_failed);
}
free(modifiers_failed);
return ret;