summaryrefslogtreecommitdiffstats
path: root/src/glx
diff options
context:
space:
mode:
authorAdam Jackson <[email protected]>2018-07-06 14:59:21 -0400
committerAdam Jackson <[email protected]>2018-07-09 12:03:18 -0400
commitd257ec01360be05a745bbb851f08e944bcb23718 (patch)
tree7f4c9b84ad64a0109a5e6c07451e8f9eb6e2dcb3 /src/glx
parentaf6b7bf23662c610e699e4b7fde1526ca1d1624a (diff)
glx: Don't allow glXMakeContextCurrent() with only one valid drawable
Drawable and readable need to either both be None or both be non-None. Cc: <[email protected]> Signed-off-by: Adam Jackson <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/glx')
-rw-r--r--src/glx/glxcurrent.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/glx/glxcurrent.c b/src/glx/glxcurrent.c
index fd04929b89f..2b9c708c3ee 100644
--- a/src/glx/glxcurrent.c
+++ b/src/glx/glxcurrent.c
@@ -194,6 +194,13 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
return True;
}
+ /* can't have only one be 0 */
+ if (!!draw != !!read) {
+ __glXUnlock();
+ __glXSendError(dpy, BadMatch, None, X_GLXMakeContextCurrent, True);
+ return False;
+ }
+
if (oldGC != &dummyContext) {
if (--oldGC->thread_refcount == 0) {
oldGC->vtable->unbind(oldGC, gc);