From bcea1095da2d29f5812bd1adabac334cfca60355 Mon Sep 17 00:00:00 2001 From: Thorvald Natvig Date: Mon, 1 Sep 2008 19:36:56 +0200 Subject: [PATCH] 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) --- Xext/xevie.c | 4 ++++ 1 file changed, 4 insertions(+) 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);