diff options
author | Mario Kleiner <[email protected]> | 2016-10-11 20:42:03 +0200 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2016-10-14 10:11:25 +0100 |
commit | 0c94ed0987fd948a7ff4bef401e25319171917c4 (patch) | |
tree | 250d62026b05c8f65b13edbaae9a763a71029329 /src/glx | |
parent | a42c22fdbfcdd0d24a51e1575f2e1f3340bfbeda (diff) |
glx: Perform check for valid fbconfig against proper X-Screen.
Commit cf804b4455fac9e585b3600a8318caaced9c23de
('glx: fix crash with bad fbconfig') introduced a check
in glXCreateNewContext() if the given config is a valid
fbconfig.
Unfortunately the check always checks the given config against
the fbconfigs of the DefaultScreen(dpy), instead of the
actual X-Screen specified in the config config->screen.
This leads to failure whenever a GL context is created
on a non-DefaultScreen(dpy), e.g., on X-Screen 1 of
a multi-x-screen setup, where the default screen is
typically 0.
Fix this by using config->screen instead of DefaultScreen(dpy).
Tested to fix context creation failure on a dual-x-screen setup.
Signed-off-by: Mario Kleiner <[email protected]>
Cc: "11.2 12.0" <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/glx')
-rw-r--r-- | src/glx/glxcmds.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index b0a1cb04659..6abe0b9f229 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -1626,7 +1626,6 @@ glXCreateNewContext(Display * dpy, GLXFBConfig fbconfig, int renderType, GLXContext shareList, Bool allowDirect) { struct glx_config *config = (struct glx_config *) fbconfig; - int screen = DefaultScreen(dpy); struct glx_config **config_list; int list_size; unsigned i; @@ -1637,7 +1636,7 @@ glXCreateNewContext(Display * dpy, GLXFBConfig fbconfig, } config_list = (struct glx_config **) - glXGetFBConfigs(dpy, screen, &list_size); + glXGetFBConfigs(dpy, config->screen, &list_size); for (i = 0; i < list_size; i++) { if (config_list[i] == config) |