Module Name: xsrc Committed By: mrg Date: Wed Dec 10 09:15:43 UTC 2014
Modified Files: xsrc/external/mit/xorg-server/dist/include: dix.h xsrc/external/mit/xorg-server/dist/os: access.c Log Message: apply two more parts of CVE-2014-8092: Missing parens in REQUEST_FIXED_SIZE macro [CVE-2014-8092 pt. 5] dix: GetHosts bounds check using wrong pointer value [CVE-2014-8092 pt. 6] To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 xsrc/external/mit/xorg-server/dist/include/dix.h cvs rdiff -u -r1.2 -r1.3 xsrc/external/mit/xorg-server/dist/os/access.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/dist/include/dix.h diff -u xsrc/external/mit/xorg-server/dist/include/dix.h:1.2 xsrc/external/mit/xorg-server/dist/include/dix.h:1.3 --- xsrc/external/mit/xorg-server/dist/include/dix.h:1.2 Tue Dec 9 19:26:18 2014 +++ xsrc/external/mit/xorg-server/dist/include/dix.h Wed Dec 10 09:15:43 2014 @@ -80,7 +80,7 @@ SOFTWARE. #define REQUEST_FIXED_SIZE(req, n)\ if (((sizeof(req) >> 2) > client->req_len) || \ - ((n >> 2) >= client->req_len) || \ + (((n) >> 2) >= client->req_len) || \ ((((uint64_t) sizeof(req) + (n) + 3) >> 2) != (uint64_t) client->req_len)) \ return(BadLength) Index: xsrc/external/mit/xorg-server/dist/os/access.c diff -u xsrc/external/mit/xorg-server/dist/os/access.c:1.2 xsrc/external/mit/xorg-server/dist/os/access.c:1.3 --- xsrc/external/mit/xorg-server/dist/os/access.c:1.2 Tue Dec 9 19:26:18 2014 +++ xsrc/external/mit/xorg-server/dist/os/access.c Wed Dec 10 09:15:43 2014 @@ -1420,7 +1420,7 @@ GetHosts ( for (host = validhosts; host; host = host->next) { len = host->len; - if ((ptr + sizeof(xHostEntry) + len) > (data + n)) + if ((ptr + sizeof(xHostEntry) + len) > ((unsigned char *) *data + n)) break; ((xHostEntry *)ptr)->family = host->family; ((xHostEntry *)ptr)->length = len;