File xorg-server-appgroup.patch of Package xorg-x11-server

# richard.coe@med.ge.com   GSAge16522   Xorg crash when closing down appgroup process
# 20 Nov 2009
# This patch fixes a crash in the Xorg server when the appgroup leader has exited and 
# windows from the appgroup session are left open and eventually close.
# The issue is caused when windows in the appgroup are not correctly inserted into the
# appgroup list.  Since they are not in the list, the windows do not get closed at 
# appgroup shutdown.  
#
# I was able to reproduce this with two scripts:
# script: xltest
# while : ; do ./xlaunch -- ./xtest1 & sleep 1 ; kill $! ; done
# script: xtest1
# let i=0 ; while ((i < 20)) ; do xterm -geometry =20x20 & let i=$i + 1 ; done
#
diff -urNp ../xorg-server-1.5.2-old/Xext/appgroup.c Xext/appgroup.c
--- ../xorg-server-1.5.2-old/Xext/appgroup.c	2008-10-10 13:12:48.000000000 -0500
+++ Xext/appgroup.c	2009-11-20 13:57:23.000000000 -0600
@@ -142,10 +142,11 @@ static void XagClientStateChange(
 	if (pAppGrp->nclients != 0) {
 	    /* if this client already in AppGroup, don't add it again */
 	    int i;
-	    for (i = 0; i < pAppGrp->nclients; i++)
+	    for (i = 0; i < pAppGrp->nclients; i++) {
 		if (pClient == pAppGrp->clients[i]) return;
 		if (slot == -1 && pAppGrp->clients[i] == NULL)
 			slot = i;
+	    }
 	}
 	if (slot == -1) {
 	    slot = pAppGrp->nclients++;
openSUSE Build Service is sponsored by