xserver: Branch 'master'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sun Aug 8 12:49:42 UTC 2021


 Xext/geext.c          |    8 +++++++-
 damageext/damageext.c |    6 +++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

New commits:
commit 659260a0b7c1cef6060bd62a83deb03e3fa472b1
Author: Demi Marie Obenour <demi at invisiblethingslab.com>
Date:   Fri Aug 6 13:23:08 2021 -0400

    More missing version checks in SProcs
    
    The bug in XFixes was also found in GenericEvent and Damage.

diff --git a/Xext/geext.c b/Xext/geext.c
index 5009c081a..05988c41a 100644
--- a/Xext/geext.c
+++ b/Xext/geext.c
@@ -138,9 +138,15 @@ ProcGEDispatch(ClientPtr client)
 static int _X_COLD
 SProcGEDispatch(ClientPtr client)
 {
+    GEClientInfoPtr pGEClient = GEGetClient(client);
+
     REQUEST(xGEReq);
-    if (stuff->ReqType >= GENumberRequests)
+
+    if (pGEClient->major_version >= ARRAY_SIZE(version_requests))
         return BadRequest;
+    if (stuff->ReqType > version_requests[pGEClient->major_version])
+        return BadRequest;
+
     return (*SProcGEVector[stuff->ReqType]) (client);
 }
 
diff --git a/damageext/damageext.c b/damageext/damageext.c
index ce490cbf2..c8194da07 100644
--- a/damageext/damageext.c
+++ b/damageext/damageext.c
@@ -561,7 +561,11 @@ static int _X_COLD
 SProcDamageDispatch(ClientPtr client)
 {
     REQUEST(xDamageReq);
-    if (stuff->damageReqType >= XDamageNumberRequests)
+    DamageClientPtr pDamageClient = GetDamageClient(client);
+
+    if (pDamageClient->major_version >= ARRAY_SIZE(version_requests))
+        return BadRequest;
+    if (stuff->damageReqType > version_requests[pDamageClient->major_version])
         return BadRequest;
     return (*SProcDamageVector[stuff->damageReqType]) (client);
 }


More information about the xorg-commit mailing list