mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 16:00:09 +01:00
glx: Don't refer to the request buffer outside of {L,Unl}ockDisplay
... because that's not a safe thing to do. The request buffer is shared storage among all threads, and after UnlockDisplay the 'req' pointer may point into someone else's request. NOTE: This is a candidate for the 7.10 branch. Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
c44dad559a
commit
a95ec18549
1 changed files with 4 additions and 3 deletions
|
|
@ -375,6 +375,7 @@ CreateDrawable(Display *dpy, struct glx_config *config,
|
|||
CARD32 *data;
|
||||
unsigned int i;
|
||||
CARD8 opcode;
|
||||
GLXDrawable xid;
|
||||
|
||||
i = 0;
|
||||
if (attrib_list) {
|
||||
|
|
@ -395,7 +396,7 @@ CreateDrawable(Display *dpy, struct glx_config *config,
|
|||
req->screen = config->screen;
|
||||
req->fbconfig = config->fbconfigID;
|
||||
req->window = drawable;
|
||||
req->glxwindow = XAllocID(dpy);
|
||||
req->glxwindow = xid = XAllocID(dpy);
|
||||
req->numAttribs = i;
|
||||
|
||||
if (attrib_list)
|
||||
|
|
@ -404,9 +405,9 @@ CreateDrawable(Display *dpy, struct glx_config *config,
|
|||
UnlockDisplay(dpy);
|
||||
SyncHandle();
|
||||
|
||||
CreateDRIDrawable(dpy, config, drawable, req->glxwindow, attrib_list, i);
|
||||
CreateDRIDrawable(dpy, config, drawable, xid, attrib_list, i);
|
||||
|
||||
return req->glxwindow;
|
||||
return xid;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue