diff options
author | Thorvald Natvig <slicer@users.sourceforge.net> | 2008-09-01 19:36:56 +0200 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2008-09-03 13:05:44 -0400 |
commit | bcea1095da2d29f5812bd1adabac334cfca60355 (patch) | |
tree | df267417aef939cb2fc34002e8c3e3263b25c459 | |
parent | 67ed1f23fe29affe14587fbb809d0e95197db78b (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.c | 4 |
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); |