[arch-commits] Commit in xorg-server/trunk (7 files)

Christian Hesse eworm at gemini.archlinux.org
Tue Jul 12 14:14:43 UTC 2022


    Date: Tuesday, July 12, 2022 @ 14:14:43
  Author: eworm
Revision: 450938

upgpkg: xorg-server 21.1.4-1: new upstream release...

... fixing serve CVEs:
https://lists.x.org/archives/xorg/2022-July/061035.html

Added:
  xorg-server/trunk/keys/
  xorg-server/trunk/keys/pgp/
  xorg-server/trunk/keys/pgp/FD0004A26EADFE43A4C3F249C6F7AE200374452D.asc
Modified:
  xorg-server/trunk/PKGBUILD
Deleted:
  xorg-server/trunk/0001-xkb-fix-XkbSetMap-when-changing-a-keysym-without-cha.patch
  xorg-server/trunk/0003-dix_Correctly_save_replayed_event_into_GrabInfoRec.patch
  xorg-server/trunk/0004-present_Check_for_NULL_to_prevent_crash.patch

-----------------------------------------------------------------+
 0001-xkb-fix-XkbSetMap-when-changing-a-keysym-without-cha.patch |   87 --------
 0003-dix_Correctly_save_replayed_event_into_GrabInfoRec.patch   |   98 ----------
 0004-present_Check_for_NULL_to_prevent_crash.patch              |   43 ----
 PKGBUILD                                                        |   20 --
 keys/pgp/FD0004A26EADFE43A4C3F249C6F7AE200374452D.asc           |    1 
 5 files changed, 5 insertions(+), 244 deletions(-)

Deleted: 0001-xkb-fix-XkbSetMap-when-changing-a-keysym-without-cha.patch
===================================================================
--- 0001-xkb-fix-XkbSetMap-when-changing-a-keysym-without-cha.patch	2022-07-12 13:45:21 UTC (rev 450937)
+++ 0001-xkb-fix-XkbSetMap-when-changing-a-keysym-without-cha.patch	2022-07-12 14:14:43 UTC (rev 450938)
@@ -1,87 +0,0 @@
-From 0217cc6e0cf5013366105a90f5f91ccc4bab5425 Mon Sep 17 00:00:00 2001
-From: Samuel Thibault <samuel.thibault at ens-lyon.org>
-Date: Wed, 26 Jan 2022 00:05:55 +0100
-Subject: [PATCH] xkb: fix XkbSetMap when changing a keysym without changing a
- keytype
-
-As the comment says:
-
-"symsPerKey/mapWidths must be filled regardless of client-side flags"
-
-so we always have to call CheckKeyTypes which will notably fill mapWidths
-and nTypes. That is needed for CheckKeySyms to work since it checks the
-width. Without it, any request with XkbKeySymsMask but not
-XkbKeyTypesMask will fail because of the missing width information, for
-instance this:
-
-  XkbDescPtr xkb;
-  if (!(xkb = XkbGetMap (dpy, XkbKeyTypesMask|XkbKeySymsMask, XkbUseCoreKbd))) {
-    fprintf (stderr, "ERROR getting map\n");
-    exit(1);
-  }
-  XFlush (dpy);
-  XSync (dpy, False);
-
-  XkbMapChangesRec changes = { .changed = 0 };
-  int oneGroupType[XkbNumKbdGroups] = { XkbOneLevelIndex };
-
-  if (XkbChangeTypesOfKey(xkb, keycode, 1, XkbGroup1Mask, oneGroupType, &changes)) {
-    fprintf(stderr, "ERROR changing type of key\n");
-    exit(1);
-  }
-  XkbKeySymEntry(xkb,keycode,0,0) = keysym;
-
-  if (!XkbChangeMap(dpy,xkb,&changes)) {
-    fprintf(stderr, "ERROR changing map\n");
-    exit(1);
-  }
-
-  XkbFreeKeyboard (xkb, 0, TRUE);
-  XFlush (dpy);
-  XSync (dpy, False);
-
-This had being going under the radar since about ever until commit
-de940e06f8733d87bbb857aef85d830053442cfe ("xkb: fix key type index check
-in _XkbSetMapChecks") fixed checking the values of kt_index, which was
-previously erroneously ignoring errors and ignoring all other checks, just
-because nTypes was not set, precisely because CheckKeyTypes was not called.
-
-Note: yes, CheckKeyTypes is meant to be callable without XkbKeyTypesMask, it
-does properly check for that and just fills nTypes and mapWidths in that
-case.
-
-Signed-off-by: Samuel Thibault <samuel.thibault at ens-lyon.org>
-Signed-off-by: Laurent Carlier <lordheavym at gmail.com>
----
- xkb/xkb.c | 11 +++++------
- 1 file changed, 5 insertions(+), 6 deletions(-)
-
-diff --git a/xkb/xkb.c b/xkb/xkb.c
-index bfc21de00..820cd7166 100644
---- a/xkb/xkb.c
-+++ b/xkb/xkb.c
-@@ -2511,16 +2511,15 @@ _XkbSetMapChecks(ClientPtr client, DeviceIntPtr dev, xkbSetMapReq * req,
-         }
-     }
- 
--    if (!(req->present & XkbKeyTypesMask)) {
--        nTypes = xkb->map->num_types;
--    }
--    else if (!CheckKeyTypes(client, xkb, req, (xkbKeyTypeWireDesc **) &values,
--			       &nTypes, mapWidths, doswap)) {
-+    /* nTypes/mapWidths/symsPerKey must be filled for further tests below,
-+     * regardless of client-side flags */
-+
-+    if (!CheckKeyTypes(client, xkb, req, (xkbKeyTypeWireDesc **) &values,
-+		       &nTypes, mapWidths, doswap)) {
- 	    client->errorValue = nTypes;
- 	    return BadValue;
-     }
- 
--    /* symsPerKey/mapWidths must be filled regardless of client-side flags */
-     map = &xkb->map->key_sym_map[xkb->min_key_code];
-     for (i = xkb->min_key_code; i < xkb->max_key_code; i++, map++) {
-         register int g, ng, w;
--- 
-2.35.1
-

Deleted: 0003-dix_Correctly_save_replayed_event_into_GrabInfoRec.patch
===================================================================
--- 0003-dix_Correctly_save_replayed_event_into_GrabInfoRec.patch	2022-07-12 13:45:21 UTC (rev 450937)
+++ 0003-dix_Correctly_save_replayed_event_into_GrabInfoRec.patch	2022-07-12 14:14:43 UTC (rev 450938)
@@ -1,98 +0,0 @@
-From 6ef5c05728f8b18170fbc8415d7502495a08670b Mon Sep 17 00:00:00 2001
-From: Povilas Kanapickas <povilas at radix.lt>
-Date: Sun, 23 Jan 2022 22:18:52 +0200
-Subject: [PATCH] dix: Correctly save replayed event into GrabInfoRec
-
-When processing events we operate on InternalEvent pointers. They may
-actually refer to a an instance of DeviceEvent, GestureEvent or any
-other event that comprises the InternalEvent union. This works well in
-practice because we always look into event type before doing anything,
-except in the case of copying the event.
-
-*dst_event = *src_event would copy whole InternalEvent event and would
-cause out of bounds read in case the pointed to event was not
-InternalEvent but e.g. DeviceEvent.
-
-This regression has been introduced in
-23a8b62d34344575f9df9d057fb74bfefa94a77b.
-
-Fixes https://gitlab.freedesktop.org/xorg/xserver/-/issues/1261
-
-Signed-off-by: Povilas Kanapickas <povilas at radix.lt>
----
- Xi/exevents.c   |  2 +-
- dix/events.c    | 18 ++++++++++++++++--
- include/input.h |  1 +
- 3 files changed, 18 insertions(+), 3 deletions(-)
-
-diff --git a/Xi/exevents.c b/Xi/exevents.c
-index 94b9983bd..217baa956 100644
---- a/Xi/exevents.c
-+++ b/Xi/exevents.c
-@@ -1524,7 +1524,7 @@ DeliverTouchEmulatedEvent(DeviceIntPtr dev, TouchPointInfoPtr ti,
-             g = AllocGrab(devgrab);
-             BUG_WARN(!g);
- 
--            *dev->deviceGrab.sync.event = *ev;
-+            CopyPartialInternalEvent(dev->deviceGrab.sync.event, ev);
- 
-             /* The listener array has a sequence of grabs and then one event
-              * selection. Implicit grab activation occurs through delivering an
-diff --git a/dix/events.c b/dix/events.c
-index 341c746d4..28d7d177c 100644
---- a/dix/events.c
-+++ b/dix/events.c
-@@ -467,6 +467,20 @@ WindowXI2MaskIsset(DeviceIntPtr dev, WindowPtr win, xEvent *ev)
-     return xi2mask_isset(inputMasks->xi2mask, dev, evtype);
- }
- 
-+/**
-+ * When processing events we operate on InternalEvent pointers. They may actually refer to a
-+ * an instance of DeviceEvent, GestureEvent or any other event that comprises the InternalEvent
-+ * union. This works well in practice because we always look into event type before doing anything,
-+ * except in the case of copying the event. Any copying of InternalEvent should use this function
-+ * instead of doing *dst_event = *src_event whenever it's not clear whether source event actually
-+ * points to full InternalEvent instance.
-+ */
-+void
-+CopyPartialInternalEvent(InternalEvent* dst_event, const InternalEvent* src_event)
-+{
-+    memcpy(dst_event, src_event, src_event->any.length);
-+}
-+
- Mask
- GetEventMask(DeviceIntPtr dev, xEvent *event, InputClients * other)
- {
-@@ -3873,7 +3887,7 @@ void ActivateGrabNoDelivery(DeviceIntPtr dev, GrabPtr grab,
- 
-     if (grabinfo->sync.state == FROZEN_NO_EVENT)
-         grabinfo->sync.state = FROZEN_WITH_EVENT;
--    *grabinfo->sync.event = *real_event;
-+    CopyPartialInternalEvent(grabinfo->sync.event, real_event);
- }
- 
- static BOOL
-@@ -4455,7 +4469,7 @@ FreezeThisEventIfNeededForSyncGrab(DeviceIntPtr thisDev, InternalEvent *event)
-     case FREEZE_NEXT_EVENT:
-         grabinfo->sync.state = FROZEN_WITH_EVENT;
-         FreezeThaw(thisDev, TRUE);
--        *grabinfo->sync.event = *event;
-+        CopyPartialInternalEvent(grabinfo->sync.event, event);
-         break;
-     }
- }
-diff --git a/include/input.h b/include/input.h
-index b1aef3663..cdb5d5a90 100644
---- a/include/input.h
-+++ b/include/input.h
-@@ -676,6 +676,7 @@ extern void GestureEmitGestureEndToOwner(DeviceIntPtr dev, GestureInfoPtr gi);
- extern void ProcessGestureEvent(InternalEvent *ev, DeviceIntPtr dev);
- 
- /* misc event helpers */
-+extern void CopyPartialInternalEvent(InternalEvent* dst_event, const InternalEvent* src_event);
- extern Mask GetEventMask(DeviceIntPtr dev, xEvent *ev, InputClientsPtr clients);
- extern Mask GetEventFilter(DeviceIntPtr dev, xEvent *event);
- extern Bool WindowXI2MaskIsset(DeviceIntPtr dev, WindowPtr win, xEvent *ev);
--- 
-GitLab
-

Deleted: 0004-present_Check_for_NULL_to_prevent_crash.patch
===================================================================
--- 0004-present_Check_for_NULL_to_prevent_crash.patch	2022-07-12 13:45:21 UTC (rev 450937)
+++ 0004-present_Check_for_NULL_to_prevent_crash.patch	2022-07-12 14:14:43 UTC (rev 450938)
@@ -1,43 +0,0 @@
-From 69774044716039fa70655b3bc6dd6a4ff4535cfd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?B=C5=82a=C5=BCej=20Szczygie=C5=82?= <spaz16 at wp.pl>
-Date: Thu, 13 Jan 2022 00:47:27 +0100
-Subject: [PATCH] present: Check for NULL to prevent crash
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1275
-Signed-off-by: Błażej Szczygieł <spaz16 at wp.pl>
-Tested-by: Aaron Plattner <aplattner at nvidia.com>
-(cherry picked from commit 22d5818851967408bb7c903cb345b7ca8766094c)
----
- present/present_scmd.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/present/present_scmd.c b/present/present_scmd.c
-index da836ea6b..239055bc1 100644
---- a/present/present_scmd.c
-+++ b/present/present_scmd.c
-@@ -158,6 +158,9 @@ present_scmd_get_crtc(present_screen_priv_ptr screen_priv, WindowPtr window)
-     if (!screen_priv->info)
-         return NULL;
- 
-+    if (!screen_priv->info->get_crtc)
-+        return NULL;
-+
-     return (*screen_priv->info->get_crtc)(window);
- }
- 
-@@ -196,6 +199,9 @@ present_flush(WindowPtr window)
-     if (!screen_priv->info)
-         return;
- 
-+    if (!screen_priv->info->flush)
-+        return;
-+
-     (*screen_priv->info->flush) (window);
- }
- 
--- 
-GitLab
-

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-07-12 13:45:21 UTC (rev 450937)
+++ PKGBUILD	2022-07-12 14:14:43 UTC (rev 450938)
@@ -4,8 +4,8 @@
 pkgbase=xorg-server
 pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xvfb' 'xorg-server-xnest'
          'xorg-server-common' 'xorg-server-devel')
-pkgver=21.1.3
-pkgrel=7
+pkgver=21.1.4
+pkgrel=1
 arch=('x86_64')
 license=('custom')
 groups=('xorg')
@@ -21,32 +21,20 @@
 source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pkgver}.tar.xz{,.sig}
         xvfb-run # with updates from FC master
         xvfb-run.1
-        0001-xkb-fix-XkbSetMap-when-changing-a-keysym-without-cha.patch
         0002-xephyr_Dont_check_for_SeatId_anymore.patch
-        0003-dix_Correctly_save_replayed_event_into_GrabInfoRec.patch
-        0004-present_Check_for_NULL_to_prevent_crash.patch
 )
 validpgpkeys=('FD0004A26EADFE43A4C3F249C6F7AE200374452D') # Povilas Kanapickas <povilas at radix.lt>
-sha512sums=('cf5fed023eadda62ae732f8c4d427c272ebe005188341290f3d03147042c103b00cbb94d86a0256da815fb9b9a3da315c21a05ee0c926c1a2ff0c54ab0c0638b'
+sha512sums=('eb5b8520d02908f72719e6ecfbf7a9bf139acb65ccae04d1db4223a8a2384cd3a94bd5afef10cce327b751b800cc2b79bfaa5ae35c95c3a217f775168082e68f'
             'SKIP'
             '87c79b4a928e74463f96f58d277558783eac9b8ea6ba00d6bbbb67ad84c4d65b3792d960ea2a70089ae18162e82ae572a49ad36df169c974cc99dbaa51f63eb2'
             'de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22'
-            'bc3b955072f320ae72a771bebecbcf56637cd0448c3afa28149fcd9e0de3700e9fba1fec21fe283be77e1236e317e385f6970eb59df54d3181324c229c8309d7'
-            '34de52147054535256f35143d321e4d5e189baae502afca2bd3291094946dbead0829b1f196ae2a4d23bd6d0e1e04b65a387dee43f12dee55d247e37aec419d7'
-            '01acc49ee9d0681b1ec3f9f22cd4e0dbaee2f5395ebe796e158e30c7d61890337a01fe7ace267d90d62e29f3d74b981391feb7cc5840c187d62f9433ce8e1fff'
-            'a61128b27b76b7089a4b43f9b679d9ecd607b5d8645fa5ef635902e4a51a7609e3bff0190d877117ce324d49a2711375850df2046f4cad99ea8a8c6cc8cf11fa')
+            '34de52147054535256f35143d321e4d5e189baae502afca2bd3291094946dbead0829b1f196ae2a4d23bd6d0e1e04b65a387dee43f12dee55d247e37aec419d7')
 
 prepare() {
   cd ${pkgbase}-$pkgver
 
-  # merged in main
-  patch -Np1 -i ../0001-xkb-fix-XkbSetMap-when-changing-a-keysym-without-cha.patch
   # FS#73274
   patch -Np1 -i ../0002-xephyr_Dont_check_for_SeatId_anymore.patch
-  # FS#73875
-  patch -Np1 -i ../0003-dix_Correctly_save_replayed_event_into_GrabInfoRec.patch
-  # FS#73895
-  patch -Np1 -i ../0004-present_Check_for_NULL_to_prevent_crash.patch
 }
 
 build() {

Added: keys/pgp/FD0004A26EADFE43A4C3F249C6F7AE200374452D.asc
===================================================================
(Binary files differ)

Index: xorg-server/trunk/keys/pgp/FD0004A26EADFE43A4C3F249C6F7AE200374452D.asc
===================================================================
--- keys/pgp/FD0004A26EADFE43A4C3F249C6F7AE200374452D.asc	2022-07-12 13:45:21 UTC (rev 450937)
+++ keys/pgp/FD0004A26EADFE43A4C3F249C6F7AE200374452D.asc	2022-07-12 14:14:43 UTC (rev 450938)

Property changes on: xorg-server/trunk/keys/pgp/FD0004A26EADFE43A4C3F249C6F7AE200374452D.asc
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pgp-keys
\ No newline at end of property


More information about the arch-commits mailing list