• Freya Gentz's avatar
    glx: Fix synthetic error generation in __glXSendError · e91ee763
    Freya Gentz authored
    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.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99781
    Cc: mesa-stable@lists.freedesktop.org
    Fixes: ad503c41
    
     'apple: Initial import of libGL for OSX from AppleSGLX svn repository'
    Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
    Reviewed-by: default avatarIan Romanick <ian.d.romanick@intel.com>
    Signed-off-by: Freya Gentz's avatarHal Gentz <zegentzy@protonmail.com>
    e91ee763
glx_error.c 2.48 KB