rpms/xorg-x11-server/F-10 xserver-1.6.1-xkbsendmap.patch, NONE, 1.1 xorg-x11-server.spec, 1.395, 1.396

Peter Hutterer whot at fedoraproject.org
Sun May 24 23:36:41 UTC 2009


Author: whot

Update of /cvs/pkgs/rpms/xorg-x11-server/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv14333

Modified Files:
	xorg-x11-server.spec 
Added Files:
	xserver-1.6.1-xkbsendmap.patch 
Log Message:
* Mon May 25 2009 Peter Hutterer <peter.hutterer at redhat.com> 1.5.3-17
- xserver-1.6.1-xkbsendmap.patch: Fix crash due to uninitialized VModMap fields.


xserver-1.6.1-xkbsendmap.patch:

--- NEW FILE xserver-1.6.1-xkbsendmap.patch ---
>From 525aa17f804d37d1cfcbbf6b8e6cddb45e999b20 Mon Sep 17 00:00:00 2001
From: Tomas Janousek <tomi at nomi.cz>
Date: Wed, 20 May 2009 15:03:01 +0200
Subject: [PATCH] Bug #6428, #16458, #21464: Fix crash due to uninitialized VModMap fields.

In ProcXkbGetKbdByName, mrep.firstVModMapKey, .nVModMapKeys and
.totalVModMapKeys were not initialized, contained random values and caused
accesses to unallocated and later modified memory, causing
XkbSizeVirtualModMap and XkbWriteVirtualModMap to see different number of
nonzero values, resulting in writes past the end of an array in XkbSendMap.

This patch initializes those values sensibly and reverts commits 5c0a2088 and
6dd4fc46, which have been plain non-sense.

Signed-off-by: Tomas Janousek <tomi at nomi.cz>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 xkb/xkb.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/xkb/xkb.c b/xkb/xkb.c
index 445c55f..ec46238 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -1308,7 +1308,7 @@ XkbSizeVirtualModMap(XkbDescPtr xkb,xkbGetMapReply *rep)
 	rep->totalVModMapKeys= 0;
 	return 0;
     }
-    for (nRtrn=i=0;i<rep->nVModMapKeys-1;i++) {
+    for (nRtrn=i=0;i<rep->nVModMapKeys;i++) {
 	if (xkb->server->vmodmap[i+rep->firstVModMapKey]!=0)
 	    nRtrn++;
     }
@@ -1327,7 +1327,7 @@ unsigned short *	pMap;
 
     wire= (xkbVModMapWireDesc *)buf;
     pMap= &xkb->server->vmodmap[rep->firstVModMapKey];
-    for (i=0;i<rep->nVModMapKeys-1;i++,pMap++) {
+    for (i=0;i<rep->nVModMapKeys;i++,pMap++) {
 	if (*pMap!=0) {
 	    wire->key= i+rep->firstVModMapKey;
 	    wire->vmods= *pMap;
@@ -5670,7 +5670,7 @@ ProcXkbGetKbdByName(ClientPtr client)
 	    mrep.present = 0;
 	    mrep.totalSyms = mrep.totalActs =
 		mrep.totalKeyBehaviors= mrep.totalKeyExplicit= 
-		mrep.totalModMapKeys= 0;
+		mrep.totalModMapKeys= mrep.totalVModMapKeys= 0;
 	    if (rep.reported&(XkbGBN_TypesMask|XkbGBN_ClientSymbolsMask)) {
 		mrep.present|= XkbKeyTypesMask;
 		mrep.firstType = 0;
@@ -5696,6 +5696,8 @@ ProcXkbGetKbdByName(ClientPtr client)
 			mrep.firstKeyExplicit = new->min_key_code;
 		mrep.nKeyActs = mrep.nKeyBehaviors = 
 			mrep.nKeyExplicit = XkbNumKeys(new);
+		mrep.firstVModMapKey= new->min_key_code;
+		mrep.nVModMapKeys= XkbNumKeys(new);
 	    }
 	    else {
 		mrep.virtualMods= 0;
-- 
1.6.3.rc1.2.g0164.dirty



Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/F-10/xorg-x11-server.spec,v
retrieving revision 1.395
retrieving revision 1.396
diff -u -p -r1.395 -r1.396
--- xorg-x11-server.spec	8 Apr 2009 21:21:54 -0000	1.395
+++ xorg-x11-server.spec	24 May 2009 23:36:07 -0000	1.396
@@ -19,7 +19,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.5.3
-Release:   16%{?dist}
+Release:   17%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -105,6 +105,8 @@ Patch6009: xserver-1.5.3-xkb-colors.patc
 Patch6010: xserver-1.5.3-hdmi.patch
 
 Patch6011: xserver-1.5.3-dga-crash-fix.patch
+# #456378, patch from upstream
+Patch6012: xserver-1.6.1-xkbsendmap.patch
 
 %define moduledir	%{_libdir}/xorg/modules
 %define drimoduledir	%{_libdir}/dri
@@ -538,6 +540,9 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Mon May 25 2009 Peter Hutterer <peter.hutterer at redhat.com> 1.5.3-17
+- xserver-1.6.1-xkbsendmap.patch: Fix crash due to uninitialized VModMap fields.
+
 * Wed Apr 08 2009 Adam Jackson <ajax at redhat.com> 1.5.3-16
 - xserver-1.5.3-dga-crash-fix.patch: Track client state even for DGA1
   clients, and recover correctly.




More information about the fedora-extras-commits mailing list