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;

Reply via email to