summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Hopf <mhopf@suse.de>2008-01-21 16:13:21 +0100
committerMatthias Hopf <mhopf@suse.de>2008-01-21 16:13:21 +0100
commitbe6c17fcf9efebc0bbcc3d9a25f8c5a2450c2161 (patch)
tree169d58ce010bfeb145542d540cfaa92b35c8dcf5
parent94a21d757ce58254accbd5dd3a86810aadeec9f0 (diff)
CVE-2007-6429: Always test for size+offset wrapping.
-rw-r--r--Xext/shm.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/Xext/shm.c b/Xext/shm.c
index e46f6fcde..a7a1ecf75 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -799,10 +799,10 @@ CreatePmap:
if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) {
if (size < width * height)
return BadAlloc;
- /* thankfully, offset is unsigned */
- if (stuff->offset + size < size)
- return BadAlloc;
}
+ /* thankfully, offset is unsigned */
+ if (stuff->offset + size < size)
+ return BadAlloc;
VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
@@ -1144,10 +1144,10 @@ CreatePmap:
if (sizeof(size) == 4 && BitsPerPixel(depth) > 8) {
if (size < width * height)
return BadAlloc;
- /* thankfully, offset is unsigned */
- if (stuff->offset + size < size)
- return BadAlloc;
}
+ /* thankfully, offset is unsigned */
+ if (stuff->offset + size < size)
+ return BadAlloc;
VERIFY_SHMSIZE(shmdesc, stuff->offset, size, client);
pMap = (*shmFuncs[pDraw->pScreen->myNum]->CreatePixmap)(