Module Name: xsrc
Committed By: mrg
Date: Sun Nov 3 00:55:32 UTC 2024
Modified Files:
xsrc/external/mit/xorg-server.old/dist/Xi: xipassivegrab.c
Log Message:
apply upstream change 3e77295f888c67fc7645db5d0c00926a29ffecee
Subject: [PATCH] Xi: ProcXIPassiveGrabDevice needs to use unswapped length to
send reply
CVE-2024-31081
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
xsrc/external/mit/xorg-server.old/dist/Xi/xipassivegrab.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/xipassivegrab.c
diff -u xsrc/external/mit/xorg-server.old/dist/Xi/xipassivegrab.c:1.1.1.1 xsrc/external/mit/xorg-server.old/dist/Xi/xipassivegrab.c:1.2
--- xsrc/external/mit/xorg-server.old/dist/Xi/xipassivegrab.c:1.1.1.1 Thu Jun 9 09:07:56 2016
+++ xsrc/external/mit/xorg-server.old/dist/Xi/xipassivegrab.c Sun Nov 3 00:55:32 2024
@@ -92,6 +92,7 @@ ProcXIPassiveGrabDevice(ClientPtr client
void *tmp;
int mask_len;
int n;
+ uint32_t length;
REQUEST(xXIPassiveGrabDeviceReq);
REQUEST_FIXED_SIZE(xXIPassiveGrabDeviceReq,
@@ -218,9 +219,11 @@ ProcXIPassiveGrabDevice(ClientPtr client
}
}
+ /* save the value before SRepXIPassiveGrabDevice swaps it */
+ length = rep.length;
WriteReplyToClient(client, sizeof(rep), &rep);
if (rep.num_modifiers)
- WriteToClient(client, rep.length * 4, (char*)modifiers_failed);
+ WriteToClient(client, length * 4, (char*)modifiers_failed);
free(modifiers_failed);
return ret;