X-Git-Url: https://git.piment-noir.org/?p=deb_xorg-server.git;a=blobdiff_plain;f=debian%2Fpatches%2FCVE-2014-8xxx%2F0012-present-unvalidated-lengths-in-Present-extension-pro.patch;fp=debian%2Fpatches%2FCVE-2014-8xxx%2F0012-present-unvalidated-lengths-in-Present-extension-pro.patch;h=3fca05034639962c497d4eb6d2a5ed81650ff63d;hp=0000000000000000000000000000000000000000;hb=7217e0ca50bba73dad94782e67980aeeb24ab693;hpb=a09e091a5c996d46a398abb27b06fe504591673f diff --git a/debian/patches/CVE-2014-8xxx/0012-present-unvalidated-lengths-in-Present-extension-pro.patch b/debian/patches/CVE-2014-8xxx/0012-present-unvalidated-lengths-in-Present-extension-pro.patch new file mode 100644 index 0000000..3fca050 --- /dev/null +++ b/debian/patches/CVE-2014-8xxx/0012-present-unvalidated-lengths-in-Present-extension-pro.patch @@ -0,0 +1,68 @@ +From e4bde707b4972a03ffc7737bb8e70eed830670ca Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +Date: Sun, 26 Jan 2014 19:33:34 -0800 +Subject: [PATCH 12/33] present: unvalidated lengths in Present extension + procs [CVE-2014-8103 2/2] + +Signed-off-by: Alan Coopersmith +Reviewed-by: Peter Hutterer +Reviewed-by: Julien Cristau +--- + present/present_request.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/present/present_request.c b/present/present_request.c +index 835890d..7c53e72 100644 +--- a/present/present_request.c ++++ b/present/present_request.c +@@ -210,6 +210,7 @@ proc_present_query_capabilities (ClientPtr client) + RRCrtcPtr crtc = NULL; + int r; + ++ REQUEST_SIZE_MATCH(xPresentQueryCapabilitiesReq); + r = dixLookupWindow(&window, stuff->target, client, DixGetAttrAccess); + switch (r) { + case Success: +@@ -254,6 +255,7 @@ static int + sproc_present_query_version(ClientPtr client) + { + REQUEST(xPresentQueryVersionReq); ++ REQUEST_SIZE_MATCH(xPresentQueryVersionReq); + + swaps(&stuff->length); + swapl(&stuff->majorVersion); +@@ -265,6 +267,7 @@ static int + sproc_present_pixmap(ClientPtr client) + { + REQUEST(xPresentPixmapReq); ++ REQUEST_AT_LEAST_SIZE(xPresentPixmapReq); + + swaps(&stuff->length); + swapl(&stuff->window); +@@ -284,6 +287,7 @@ static int + sproc_present_notify_msc(ClientPtr client) + { + REQUEST(xPresentNotifyMSCReq); ++ REQUEST_SIZE_MATCH(xPresentNotifyMSCReq); + + swaps(&stuff->length); + swapl(&stuff->window); +@@ -297,6 +301,7 @@ static int + sproc_present_select_input (ClientPtr client) + { + REQUEST(xPresentSelectInputReq); ++ REQUEST_SIZE_MATCH(xPresentSelectInputReq); + + swaps(&stuff->length); + swapl(&stuff->window); +@@ -308,6 +313,7 @@ static int + sproc_present_query_capabilities (ClientPtr client) + { + REQUEST(xPresentQueryCapabilitiesReq); ++ REQUEST_SIZE_MATCH(xPresentQueryCapabilitiesReq); + swaps(&stuff->length); + swapl(&stuff->target); + return (*proc_present_vector[stuff->presentReqType]) (client); +-- +1.7.9.2 +