[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#500287: Xnest/Xvfb infinite loop on regen without swrast_dri.so



Package: xorg-server
Version: 2:1.5.1-1
Severity: important

mi/miinitext.c:InitExtensions() calls
GlxPushProvider(&__glXDRISWRastProvider);
On server regen, this means that the swrast glx provider is twice in
__glXProviderStack, which is no longer NULL-terminated.  The following
call to GlxExtensionInit() gets in an infinite loop.

The following patch works around this, but I have no idea if it's
correct, if __glXProviderStack should get emptied on regen, or something
else.  Just posting it here for the record.

diff --git a/mi/miinitext.c b/mi/miinitext.c
index 55faec3..750c425 100644
--- a/mi/miinitext.c
+++ b/mi/miinitext.c
@@ -661,7 +661,7 @@ InitExtensions(argc, argv)
 #endif
 
 #ifdef GLXEXT
-    GlxPushProvider(&__glXDRISWRastProvider);
+    if (serverGeneration == 1) GlxPushProvider(&__glXDRISWRastProvider);
     if (!noGlxExtension) GlxExtensionInit();
 #endif
 }

Cheers,
Julien



Reply to: