summaryrefslogtreecommitdiffstats
path: root/src/glx/glxcmds.c
diff options
context:
space:
mode:
authorMario Kleiner <mario.kleiner.de@gmail.com>2016-10-11 20:42:03 +0200
committerEmil Velikov <emil.l.velikov@gmail.com>2016-10-14 10:11:25 +0100
commit0c94ed0987fd948a7ff4bef401e25319171917c4 (patch)
tree250d62026b05c8f65b13edbaae9a763a71029329 /src/glx/glxcmds.c
parenta42c22fdbfcdd0d24a51e1575f2e1f3340bfbeda (diff)
downloadexternal_mesa3d-0c94ed0987fd948a7ff4bef401e25319171917c4.zip
external_mesa3d-0c94ed0987fd948a7ff4bef401e25319171917c4.tar.gz
external_mesa3d-0c94ed0987fd948a7ff4bef401e25319171917c4.tar.bz2
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 <mario.kleiner.de@gmail.com> Cc: "11.2 12.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Diffstat (limited to 'src/glx/glxcmds.c')
-rw-r--r--src/glx/glxcmds.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c
index b0a1cb0..6abe0b9 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)