xserver: Branch 'master'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Mar 30 21:39:42 UTC 2020


 glx/glxcmds.c |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit 1e29f3ea3eb63cfcb78a463ee0345ec22a013033
Author: Adam Jackson <ajax at redhat.com>
Date:   Thu Mar 5 16:32:56 2020 -0500

    glx: Require screens match for share contexts for classic CreateContext
    
    The GLX_ARB_create_context path (with which this should all get unified,
    someday, sigh) already enforces this, but the classic path does not.
    It's effectively assumed by the implementation anyway, so let's enforce
    it rather than do crashy things.
    
    Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>
    Signed-off-by: Adam Jackson <ajax at redhat.com>

diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index 189b5d913..1e2061d89 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -284,6 +284,15 @@ DoCreateContext(__GLXclientState * cl, GLXContextID gcId,
              */
             isDirect = GL_FALSE;
         }
+
+        /* Core GLX doesn't explicitly require this, but GLX_ARB_create_context
+         * does (see glx/createcontext.c), and it's assumed by our
+         * implementation anyway, so let's be consistent about it.
+         */
+        if (shareglxc->pGlxScreen != pGlxScreen) {
+            client->errorValue = shareglxc->pGlxScreen->pScreen->myNum;
+            return BadMatch;
+        }
     }
 
     /*


More information about the xorg-commit mailing list