[Mesa-dev] glxcurrent.c question SEGFAULT question
John Doe
umebugmenot at gmail.com
Wed Mar 9 07:09:56 PST 2011
Hi all,
I have posted this question on the users list also but figured this
should be the right place to ask.
Apologies if this cross-posting is considered a bad etiquette. Here it goes:
While working with a third party application I received a SEGFAULT.
Using backtrace I was able to home in the apparent (might not be the
main) source of the SEGFAULT. It is in glxcurrent.c.
More specifically, it is generated at line 201:
static void
__glXGenerateError(Display * dpy, struct glx_context *gc, XID resource,
BYTE errorCode, CARD16 minorCode)
{
xError error;
error.errorCode = errorCode;
error.resourceID = resource;
error.sequenceNumber = dpy->request;
error.type = X_Error;
error.majorCode = gc->majorOpcode; <---- Line 201
error.minorCode = minorCode;
_XError(dpy, &error);
}
The previous stack call is in the same file at line 228:
if (gc == NULL && (draw != None || read != None)) {
__glXGenerateError(dpy, gc, (draw != None) ? draw : read, <-- Line 228
BadMatch, X_GLXMakeContextCurrent);
return False;
}
Examining the trace I was able to see that all the conditions for the
if-test were satisfied. Hence the program counter enters the if-block
and calls the __glXGenerateError.
But, in __glXGenerateError since the gc is NULL the call:
error.majorCode = gc->majorOpcode
causes SEGFAULT.
Is this a bug? Or am I missing something?
I am on a 32-bit Ubuntu Maverick box. MESA version is 7.9.2.
Thank you,
UB
More information about the mesa-dev
mailing list