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: