summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorvald Natvig <slicer@users.sourceforge.net>2008-09-01 19:36:56 +0200
committerAdam Jackson <ajax@redhat.com>2008-09-03 13:05:44 -0400
commitbcea1095da2d29f5812bd1adabac334cfca60355 (patch)
treedf267417aef939cb2fc34002e8c3e3263b25c459
parent67ed1f23fe29affe14587fbb809d0e95197db78b (diff)
Xevie: always initialize rep.length (bug#17394)
The XEvIE extension doesn't clear the rep.length field for any reply but the version check. Hence, if there is junk data in it and that is sent to the client, it hangs. X.Org bug#17394 (http://bugs.freedesktop.org/show_bug.cgi?id=17394) (cherry picked from commit d3ae193f4ac87530f2745f8cb5e7b70dd516881e)
-rw-r--r--Xext/xevie.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Xext/xevie.c b/Xext/xevie.c
index 5e20bd91c..3fbe04d27 100644
--- a/Xext/xevie.c
+++ b/Xext/xevie.c
@@ -202,6 +202,7 @@ int ProcXevieStart (register ClientPtr client)
xevieModifiersOn = FALSE;
+ rep.length = 0;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
WriteToClient (client, sizeof (xXevieStartReply), (char *)&rep);
@@ -223,6 +224,7 @@ int ProcXevieEnd (register ClientPtr client)
XevieEnd(xevieClientIndex);
}
+ rep.length = 0;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
WriteToClient (client, sizeof (xXevieEndReply), (char *)&rep);
@@ -243,6 +245,7 @@ int ProcXevieSend (register ClientPtr client)
return BadAccess;
xE = (xEvent *)&stuff->event;
+ rep.length = 0;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
WriteToClient (client, sizeof (xXevieSendReply), (char *)&rep);
@@ -289,6 +292,7 @@ int ProcXevieSelectInput (register ClientPtr client)
return BadAccess;
xevieMask = stuff->event_mask;
+ rep.length = 0;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
WriteToClient (client, sizeof (xXevieSelectInputReply), (char *)&rep);