glx: Fix synthetic error generation in __glXSendError
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