aboutsummaryrefslogtreecommitdiffstats
path: root/x11-servers
diff options
context:
space:
mode:
authoranholt <anholt@FreeBSD.org>2005-08-27 03:03:26 +0800
committeranholt <anholt@FreeBSD.org>2005-08-27 03:03:26 +0800
commit1878ef07ecfd17d7ea403b9e80832e5a786410de (patch)
tree6b48c54a50331c2f0d991b63d5cb7cf2ea78b28c /x11-servers
parent7889d86a66ca60df5aa2024e3765145bdf41f3f2 (diff)
downloadfreebsd-ports-gnome-1878ef07ecfd17d7ea403b9e80832e5a786410de.tar.gz
freebsd-ports-gnome-1878ef07ecfd17d7ea403b9e80832e5a786410de.tar.zst
freebsd-ports-gnome-1878ef07ecfd17d7ea403b9e80832e5a786410de.zip
Fix a use-after-free in the cursor code that's easily triggered with -AJ malloc
opts and running current gdm. Approved by: portmgr (marcus) Obtained from: X.Org CVS
Diffstat (limited to 'x11-servers')
-rw-r--r--x11-servers/xorg-server/Makefile2
-rw-r--r--x11-servers/xorg-server/files/patch-dix-events.c42
2 files changed, 43 insertions, 1 deletions
diff --git a/x11-servers/xorg-server/Makefile b/x11-servers/xorg-server/Makefile
index b035dd6742af..afeabd2d5f80 100644
--- a/x11-servers/xorg-server/Makefile
+++ b/x11-servers/xorg-server/Makefile
@@ -7,7 +7,7 @@
PORTNAME= xorg-server
PORTVERSION= 6.8.2
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11-servers
MASTER_SITES= ${MASTER_SITE_XORG}
MASTER_SITE_SUBDIR= X11R${PORTVERSION}/src
diff --git a/x11-servers/xorg-server/files/patch-dix-events.c b/x11-servers/xorg-server/files/patch-dix-events.c
new file mode 100644
index 000000000000..1270ee6dbde2
--- /dev/null
+++ b/x11-servers/xorg-server/files/patch-dix-events.c
@@ -0,0 +1,42 @@
+Index: programs/Xserver/dix/events.c
+===================================================================
+RCS file: /cvs/xorg/xc/programs/Xserver/dix/events.c,v
+retrieving revision 1.16
+retrieving revision 1.17
+diff -u -u -r1.16 -r1.17
+--- programs/Xserver/dix/events.c 15 Jul 2005 05:48:29 -0000 1.16
++++ programs/Xserver/dix/events.c 25 Aug 2005 22:11:04 -0000 1.17
+@@ -1,4 +1,4 @@
+-/* $XdotOrg: xc/programs/Xserver/dix/events.c,v 1.16 2005/07/15 05:48:29 kem Exp $ */
++/* $XdotOrg: xc/programs/Xserver/dix/events.c,v 1.17 2005/08/25 22:11:04 anholt Exp $ */
+ /* $XFree86: xc/programs/Xserver/dix/events.c,v 3.51 2004/01/12 17:04:52 tsi Exp $ */
+ /************************************************************
+
+@@ -675,7 +675,9 @@
+ (sprite.current->bits->yhot != cursor->bits->yhot))
+ XineramaCheckPhysLimits(cursor, FALSE);
+ (*sprite.screen->DisplayCursor)(sprite.screen, cursor);
++ FreeCursor(sprite.current, (Cursor)0);
+ sprite.current = cursor;
++ sprite.current->refcnt++;
+ }
+ }
+
+@@ -930,7 +932,9 @@
+ (ScreenPtr)NULL);
+ (*sprite.hotPhys.pScreen->DisplayCursor) (sprite.hotPhys.pScreen,
+ cursor);
++ FreeCursor(sprite.current, (Cursor)0);
+ sprite.current = cursor;
++ sprite.current->refcnt++;
+ }
+ }
+
+@@ -2184,6 +2188,7 @@
+ #endif
+ sprite.win = win;
+ sprite.current = wCursor (win);
++ sprite.current->refcnt++;
+ spriteTraceGood = 1;
+ ROOT = win;
+ (*pScreen->CursorLimits) (