http://bugs.freedesktop.org/show_bug.cgi?id=22546
Summary: GetGLXScreenConfigs() segfaults if GLX isn't present. Product: Mesa Version: unspecified Platform: Other OS/Version: All Status: NEW Severity: normal Priority: medium Component: GLX AssignedTo: mesa3d-dev@lists.sourceforge.net ReportedBy: gerbils...@verizon.net Created an attachment (id=27243) --> (http://bugs.freedesktop.org/attachment.cgi?id=27243) Patch to fix GetGLXScreenConfigs(). While testing rendering fallback functionality in an application that supports both OpenGL and software rendering, I discovered a bug in Mesa that causes the program to crash if it's running on an X server that doesn't support GLX at all (e.g. vncserver). A backtrace reveals the source: #0 GetGLXScreenConfigs (dpy=<value optimized out>, scrn=0) at glxcmds.c:167 priv = (__GLXdisplayPrivate * const) 0x0 #1 0xb7a40fa7 in CreateContext (dpy=0x9c3ad98, vis=<value optimized out>, fbconfig=0x0, shareList=0x0, allowDirect=1, contextID=0, use_glx_1_3=0, renderType=0) at glxcmds.c:364 gc = (GLXContext) 0xb79e2ff4 screen = -1208638311 psc = <value optimized out> #2 0xb7a415c0 in glXCreateContext (dpy=0x9c3ad98, vis=0x99ce4c0, shareList=0x0, allowDirect=1) at glxcmds.c:487 The GetGLXScreenConfigs() function is as follows: static __GLXscreenConfigs * GetGLXScreenConfigs(Display *dpy, int scrn) { __GLXdisplayPrivate * const priv = __glXInitialize(dpy); return (priv->screenConfigs != NULL) ? &priv->screenConfigs[scrn] : NULL; } __glXInitialize() returns NULL because the X server doesn't support GLX; however, the following statement doesn't check if priv is NULL, which results in a null pointer dereference. The solution is to check both priv and priv->screenConfigs for NULL. Mesa version is 7.5-rc4. -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. ------------------------------------------------------------------------------ _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev