Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > 7b28d105797d7a6dbf17d30e8a014895 > files > 8

x11-server-xgl-0.0.1-0.20070917.2.3mdv2008.0.src.rpm

Index: Xext/xcmisc.c
===================================================================
RCS file: /cvs/xenocara/xserver/Xext/xcmisc.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 xcmisc.c
--- Xext/xcmisc.c	26 Nov 2006 18:14:51 -0000	1.1.1.1
+++ Xext/xcmisc.c	16 Feb 2007 21:59:51 -0000
@@ -42,6 +42,12 @@
 #include <X11/extensions/xcmiscstr.h>
 #include "modinit.h"
 
+#if HAVE_STDINT_H
+#include <stdint.h>
+#elif !defined(UINT32_MAX)
+#define UINT32_MAX 0xffffffffU
+#endif
+
 #if 0
 static unsigned char XCMiscCode;
 #endif
@@ -143,7 +149,10 @@
 
     REQUEST_SIZE_MATCH(xXCMiscGetXIDListReq);
 
-    pids = (XID *)ALLOCATE_LOCAL(stuff->count * sizeof(XID));
+    if (stuff->count > UINT32_MAX / sizeof(XID))
+	    return BadAlloc;
+
+    pids = (XID *)Xalloc(stuff->count * sizeof(XID));
     if (!pids)
     {
 	return BadAlloc;
@@ -164,7 +173,7 @@
     	client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
 	WriteSwappedDataToClient(client, count * sizeof(XID), pids);
     }
-    DEALLOCATE_LOCAL(pids);
+    Xfree(pids);
     return(client->noClientException);
 }