Skip to content

glx: Fix synthetic error generation in __glXSendError

Adam Jackson requested to merge ajax/mesa:glx-error-fix into master

To quote Uli Schlachter, who understands this stuff more than I do:

The function __glXSendError() in mesa's src/glx/glx_error.c invents an X11 protocol error out of thin air. For the sequence number it uses dpy->request. This is the sequence number of the last request that was sent. _XError() will then update dpy->last_request_read based on the sequence number of the error that just "came in".

If now another something comes in with a sequence number less than dpy->last_request_read, since sequence numbers are monotonically increasing, widen() will incorrectly add 1<<32 to the sequence number and things might go downhill afterwards.

__glXSendErrorForXcb was also patched, as that's the function that glXCreateContextAttribsARB actually uses.

https://bugs.freedesktop.org/show_bug.cgi?id=99781

Reviewed-by: Adam Jackson ajax@redhat.com Signed-off-by: Hal Gentz zegentzy@protonmail.com

Merge request reports