Module Name: xsrc
Committed By: mrg
Date: Sun Nov 3 00:53:37 UTC 2024
Modified Files:
xsrc/external/mit/xorg-server.old/dist/Xi: xiselectev.c
Log Message:
apply upstream change 96798fc1967491c80a4d0c8d9e0a80586cb2152b
Subject: [PATCH] Xi: ProcXIGetSelectedEvents needs to use unswapped length to
send reply
CVE-2024-31080
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
xsrc/external/mit/xorg-server.old/dist/Xi/xiselectev.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: xsrc/external/mit/xorg-server.old/dist/Xi/xiselectev.c
diff -u xsrc/external/mit/xorg-server.old/dist/Xi/xiselectev.c:1.1.1.1 xsrc/external/mit/xorg-server.old/dist/Xi/xiselectev.c:1.2
--- xsrc/external/mit/xorg-server.old/dist/Xi/xiselectev.c:1.1.1.1 Thu Jun 9 09:07:56 2016
+++ xsrc/external/mit/xorg-server.old/dist/Xi/xiselectev.c Sun Nov 3 00:53:37 2024
@@ -222,6 +222,7 @@ ProcXIGetSelectedEvents(ClientPtr client
InputClientsPtr others = NULL;
xXIEventMask *evmask = NULL;
DeviceIntPtr dev;
+ uint32_t length;
REQUEST(xXIGetSelectedEventsReq);
REQUEST_SIZE_MATCH(xXIGetSelectedEventsReq);
@@ -295,10 +296,12 @@ ProcXIGetSelectedEvents(ClientPtr client
}
}
+ /* save the value before SRepXIGetSelectedEvents swaps it */
+ length = reply.length;
WriteReplyToClient(client, sizeof(xXIGetSelectedEventsReply), &reply);
if (reply.num_masks)
- WriteToClient(client, reply.length * 4, buffer);
+ WriteToClient(client, length * 4, buffer);
free(buffer);
return Success;