rpms/xorg-x11-server/F-9 xserver-1.5.0-f-spot-screws-glx.patch, NONE, 1.1 xorg-x11-server.spec, 1.328, 1.329

Dave Airlie (airlied) fedora-extras-commits at redhat.com
Thu Apr 24 06:48:14 UTC 2008


Author: airlied

Update of /cvs/pkgs/rpms/xorg-x11-server/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17817

Modified Files:
	xorg-x11-server.spec 
Added Files:
	xserver-1.5.0-f-spot-screws-glx.patch 
Log Message:
* Thu Apr 24 2008 Dave Airlie <airlied at redhat.com> 1.4.99.901-25.20080415
- xserver-1.5.0-f-spot-screws-glx.patch: stop GLX crashing X server when
  f-spot exists (#443299)


xserver-1.5.0-f-spot-screws-glx.patch:

--- NEW FILE xserver-1.5.0-f-spot-screws-glx.patch ---
>From ae982a27e4059fecd4048d245e6aa02f8dcc97d0 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied at redhat.com>
Date: Thu, 24 Apr 2008 16:37:29 +1000
Subject: [PATCH] glx: test for valid read and draw privates before using them

this should fix a bug where f-spot exiting blows up the X server
---
 GL/glx/glxutil.c |   58 +++++++++++++++++++++++++++--------------------------
 1 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/GL/glx/glxutil.c b/GL/glx/glxutil.c
index 11e9f89..aa23a95 100644
--- a/GL/glx/glxutil.c
+++ b/GL/glx/glxutil.c
@@ -81,38 +81,40 @@ __glXDeassociateContext(__GLXcontext *glxc)
     __GLXcontext *curr, *prev;
 
     prev = NULL;
-    for ( curr = glxc->drawPriv->drawGlxc
-	  ; curr != NULL
-	  ; prev = curr, curr = curr->nextDrawPriv ) {
-	if (curr == glxc) {
-	    /* found context.  Deassociate. */
-	    if (prev == NULL) {
-		glxc->drawPriv->drawGlxc = curr->nextDrawPriv;
-	    } else {
-		prev->nextDrawPriv = curr->nextDrawPriv;
+    if (glxc->drawPriv) {
+        for ( curr = glxc->drawPriv->drawGlxc; curr != NULL
+	      ; prev = curr, curr = curr->nextDrawPriv ) {
+	    if (curr == glxc) {
+	        /* found context.  Deassociate. */
+	        if (prev == NULL) {
+		    glxc->drawPriv->drawGlxc = curr->nextDrawPriv;
+	        } else {
+		    prev->nextDrawPriv = curr->nextDrawPriv;
+	        }
+	        curr->nextDrawPriv = NULL;
+	        __glXUnrefDrawable(glxc->drawPriv);
+	        break;
 	    }
-	    curr->nextDrawPriv = NULL;
-	    __glXUnrefDrawable(glxc->drawPriv);
-	    break;
-	}
+        }
     }
 
-
     prev = NULL;
-    for ( curr = glxc->readPriv->readGlxc
-	  ; curr != NULL 
-	  ; prev = curr, curr = curr->nextReadPriv ) {
-	if (curr == glxc) {
-	    /* found context.  Deassociate. */
-	    if (prev == NULL) {
-		glxc->readPriv->readGlxc = curr->nextReadPriv;
-	    } else {
-		prev->nextReadPriv = curr->nextReadPriv;
-	    }
-	    curr->nextReadPriv = NULL;
-	    __glXUnrefDrawable(glxc->readPriv);
-	    break;
-	}
+    if (glxc->readPriv) {
+        for ( curr = glxc->readPriv->readGlxc
+	      ; curr != NULL 
+	      ; prev = curr, curr = curr->nextReadPriv ) {
+	    if (curr == glxc) {
+	        /* found context.  Deassociate. */
+	        if (prev == NULL) {
+		    glxc->readPriv->readGlxc = curr->nextReadPriv;
+	        } else {
+		    prev->nextReadPriv = curr->nextReadPriv;
+	        }
+	        curr->nextReadPriv = NULL;
+	        __glXUnrefDrawable(glxc->readPriv);
+	       break;
+	   }
+       }
     }
 }
 
-- 
1.5.4.1



Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/F-9/xorg-x11-server.spec,v
retrieving revision 1.328
retrieving revision 1.329
diff -u -r1.328 -r1.329
--- xorg-x11-server.spec	23 Apr 2008 07:07:38 -0000	1.328
+++ xorg-x11-server.spec	24 Apr 2008 06:47:31 -0000	1.329
@@ -20,7 +20,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.4.99.901
-Release:   24.%{gitdate}%{?dist}
+Release:   25.%{gitdate}%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -54,6 +54,7 @@
 # Trivial things to maybe merge upstream at next rebase
 Patch3000:  xserver-1.5.0-stenciled-visuals.patch
 Patch3001:  xserver-1.5.0-glcore-swap-no-crashy.patch
+Patch3002:  xserver-1.5.0-f-spot-screws-glx.patch
 
 # Trivial things to never merge upstream ever
 # Don't merge this without protecting the gccisms.
@@ -515,6 +516,10 @@
 
 
 %changelog
+* Thu Apr 24 2008 Dave Airlie <airlied at redhat.com> 1.4.99.901-25.20080415
+- xserver-1.5.0-f-spot-screws-glx.patch: stop GLX crashing X server when
+  f-spot exists (#443299)
+
 * Wed Apr 23 2008 Dave Airlie <airlied at redhat.com> 1.4.99.901-24.20080415
 - xserver-1.5.0-glcore-swap-no-crashy.patch: Fix issue with googleearth
   crashing GLcore.




More information about the fedora-extras-commits mailing list