Bug 18388

Summary: GlxExtensionInit() infinite loop on regen in Xvfb/Xephyr
Product: xorg Reporter: Julien Cristau <jcristau>
Component: Server/GeneralAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium Keywords: patch
Version: 7.4 (2008.09)   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
proposed patch none

Description Julien Cristau 2008-11-05 09:09:23 UTC
Created attachment 20074 [details] [review]
proposed patch

mi/miinitext.c:InitExtensions() does:
   GlxPushProvider(&__glXDRISWRastProvider);
   if (!noGlxExtension) GlxExtensionInit();

On server regen, the call to GlxPushProvider() turns __glXProviderStack into a circular list, because __glXDRISWRastProvider is already there.  If swrast_dri.so is not found, the loop over __glXProviderStack in GlxExtensionInit() won't stop...
The attached patch fixes that, but I'm not sure it's correct.
Comment 1 Julien Cristau 2008-11-07 10:25:46 UTC
On Wed, Nov  5, 2008 at 09:09:23 -0800, bugzilla-daemon@freedesktop.org wrote:

> The attached patch fixes that, but I'm not sure it's correct.
> 
got an ack from krh, so I pushed this to master.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.