Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xorg-x11-server for openSUSE:Factory 
checked in at 2021-12-16 21:18:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xorg-x11-server (Old)
 and      /work/SRC/openSUSE:Factory/.xorg-x11-server.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xorg-x11-server"

Thu Dec 16 21:18:58 2021 rev:400 rq:940758 version:21.1.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/xorg-x11-server/xorg-x11-server.changes  
2021-12-06 23:59:44.260488974 +0100
+++ 
/work/SRC/openSUSE:Factory/.xorg-x11-server.new.2520/xorg-x11-server.changes    
    2021-12-16 21:19:42.194530166 +0100
@@ -1,0 +2,54 @@
+Wed Dec 15 15:08:07 UTC 2021 - Stefan Dirsch <sndir...@suse.com>
+
+- Update to version 21.1.1
+  * This release fixes 4 recently reported security vulnerabilities and
+    several regressions.
+  * In particular, the real physical dimensions are no longer reported
+    by the X server anymore as it was deemed to be a too disruptive
+    change. X server will continue to report DPI as 96.
+- supersedes U_hw-xfree86-Propagate-physical-dimensions-from-DRM-co.patch
+- supersedes U_rendercompositeglyphs.patch
+- supersedes U_xfixes-Fix-out-of-bounds-access-in-ProcXFixesCreateP.patch
+- supersedes U_Xext-Fix-out-of-bounds-access-in-SProcScreenSaverSus.patch
+- supersedes U_record-Fix-out-of-bounds-access-in-SwapCreateRegiste.patch
+
+-------------------------------------------------------------------
+Tue Dec 14 20:21:19 UTC 2021 - Stefan Dirsch <sndir...@suse.com>
+
+- U_xfixes-Fix-out-of-bounds-access-in-ProcXFixesCreateP.patch
+  * CVE-2021-4009/ZDI-CAN-14950 (bsc#1190487)
+    The handler for the CreatePointerBarrier request of the XFixes
+    extension does not properly validate the request length leading
+    to out of bounds memory write.
+- U_Xext-Fix-out-of-bounds-access-in-SProcScreenSaverSus.patch
+  * CVE-2021-4010/ZDI-CAN-14951 (bsc#1190488)
+    The handler for the Suspend request of the Screen Saver extension
+    does not properly validate the request length leading to out of
+    bounds memory write.
+- U_record-Fix-out-of-bounds-access-in-SwapCreateRegiste.patch
+  * CVE-2021-4011/ZDI-CAN-14952 (bsc#1190489)
+    The handlers for the RecordCreateContext and RecordRegisterClients
+    requests of the Record extension do not properly validate the request
+    length leading to out of bounds memory write.
+
+-------------------------------------------------------------------
+Tue Dec 14 15:31:41 UTC 2021 - Stefan Dirsch <sndir...@suse.com>
+
+- U_rendercompositeglyphs.patch
+  * X.Org Server SProcRenderCompositeGlyphs Out-Of-Bounds Access 
+    Privilege Escalation Vulnerability [CVE-2021-4008, ZDI-CAN-14192]
+    (boo#1193030)
+
+-------------------------------------------------------------------
+Tue Dec 14 14:14:45 UTC 2021 - Thomas Zimmermann <tzimmerm...@suse.de>
+
+- u_Support-configuration-files-under-run-X11-xorg.conf..patch
+- u_Add-udev-scripts-for-configuration-of-platform-devic.patch
+- u_Add-udev-rule-for-HyperV-devices.patch
+  * Remove udev-based configuration
+- u_Revert-xf86-Accept-devices-with-the-simpledrm-driver.patch
+  * Restore simpledrm workaround
+- u_xf86-Accept-devices-with-the-hyperv_drm-driver.patch
+  * Add workaround to support hyperv_drm
+
+-------------------------------------------------------------------
@@ -5 +59 @@
-  * Fix SEGFAULT when parsing bus IDs of NULL
+  * Fix SEGFAULT when parsing bus IDs of NULL (boo#1193250)
@@ -8 +62 @@
-    configuration files via udev.
+    configuration files via udev. (boo#1193250)
@@ -10 +64 @@
-  * Generate configuration files for platform devices
+  * Generate configuration files for platform devices (boo#1193250)
@@ -12 +66 @@
-  * Code has been obsoleted by udev patchset
+  * Code has been obsoleted by udev patchset (boo#1193250)
@@ -14 +68 @@
-  * Same as for platform devices, but on HyperV
+  * Same as for platform devices, but on HyperV (boo#1193250)

Old:
----
  U_hw-xfree86-Propagate-physical-dimensions-from-DRM-co.patch
  u_Add-udev-rule-for-HyperV-devices.patch
  u_Add-udev-scripts-for-configuration-of-platform-devic.patch
  u_Revert-xf86-Accept-devices-with-the-simpledrm-driver.patch
  u_Support-configuration-files-under-run-X11-xorg.conf..patch
  xorg-server-21.1.1.tar.xz

New:
----
  u_xf86-Accept-devices-with-the-hyperv_drm-driver.patch
  xorg-server-21.1.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.Xdul0S/_old  2021-12-16 21:19:43.158530533 +0100
+++ /var/tmp/diff_new_pack.Xdul0S/_new  2021-12-16 21:19:43.162530534 +0100
@@ -36,7 +36,7 @@
 %endif
 
 Name:           xorg-x11-server
-Version:        21.1.1
+Version:        21.1.2
 Release:        0
 URL:            http://xorg.freedesktop.org/
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -199,7 +199,6 @@
 Patch2:         N_zap_warning_xserver.diff
 Patch3:         N_driver-autoconfig.diff
 Patch4:         N_fix_fglrx_screendepth_issue.patch
-Patch5:         U_hw-xfree86-Propagate-physical-dimensions-from-DRM-co.patch
 Patch6:         N_fix-dpi-values.diff
 Patch7:         N_Install-Avoid-failure-on-wrapper-installation.patch
 Patch8:         u_xorg-wrapper-Drop-supplemental-group-IDs.patch
@@ -239,10 +238,7 @@
 
 Patch1910:      u_modesetting-Fix-dirty-updates-for-sw-rotation.patch
 
-Patch1920:      u_Support-configuration-files-under-run-X11-xorg.conf..patch
-Patch1921:      u_Add-udev-scripts-for-configuration-of-platform-devic.patch
-Patch1922:      u_Revert-xf86-Accept-devices-with-the-simpledrm-driver.patch
-Patch1923:      u_Add-udev-rule-for-HyperV-devices.patch
+Patch1920:      u_xf86-Accept-devices-with-the-hyperv_drm-driver.patch
 
 %description
 This package contains the X.Org Server.
@@ -359,8 +355,6 @@
 %patch2 -p1
 %patch3 -p0
 %patch4 -p0
-# back to 96 dpi fix
-%patch5 -p1 -R
 %patch6 -p0
 %patch7 -p1
 %patch8 -p1
@@ -399,9 +393,6 @@
 %patch1900 -p1
 %patch1910 -p1
 %patch1920 -p1
-%patch1921 -p1
-%patch1922 -p1
-%patch1923 -p1
 
 %build
 %global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
@@ -603,12 +594,6 @@
 %endif
 %{_bindir}/xorg-backtrace
 
-# sysfb support
-%{_sbindir}/x11sysfsconf
-%dir %{_sysconfdir}/udev
-%dir %{_sysconfdir}/udev/rules.d
-%{_sysconfdir}/udev/rules.d/99-xorg-sysfs.rules
-
 %if 0%{?have_wayland} == 1
 %files wayland
 %{_bindir}/Xwayland

++++++ u_xf86-Accept-devices-with-the-hyperv_drm-driver.patch ++++++
>From 672050be2553afaac6810a4d85d8b5cf1656d380 Mon Sep 17 00:00:00 2001
From: Thomas Zimmermann <tzimmerm...@suse.de>
Date: Mon, 13 Dec 2021 16:10:35 +0100
Subject: [PATCH] xf86: Accept devices with the 'hyperv_drm' driver.

Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
---
 hw/xfree86/common/xf86platformBus.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/hw/xfree86/common/xf86platformBus.c 
b/hw/xfree86/common/xf86platformBus.c
index 45028f7a6..071f44b2a 100644
--- a/hw/xfree86/common/xf86platformBus.c
+++ b/hw/xfree86/common/xf86platformBus.c
@@ -560,6 +560,9 @@ xf86platformProbeDev(DriverPtr drvp)
                 if (ServerIsNotSeat0()) {
                     break;
                 } else {
+                    /* Accept the device if the driver is hyperv_drm */
+                    if (strcmp(xf86_platform_devices[j].attribs->driver, 
"hyperv_drm") == 0)
+                        break;
                     /* Accept the device if the driver is simpledrm */
                     if (strcmp(xf86_platform_devices[j].attribs->driver, 
"simpledrm") == 0)
                         break;
-- 
2.34.1


++++++ xorg-server-21.1.1.tar.xz -> xorg-server-21.1.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/ChangeLog 
new/xorg-server-21.1.2/ChangeLog
--- old/xorg-server-21.1.1/ChangeLog    2021-11-07 00:45:53.000000000 +0100
+++ new/xorg-server-21.1.2/ChangeLog    2021-12-15 14:52:25.000000000 +0100
@@ -1,3 +1,240 @@
+commit 9852b29380673484aea25771a3e812c8e8a40393
+Author: Povilas Kanapickas <povi...@radix.lt>
+Date:   Wed Dec 15 15:46:09 2021 +0200
+
+    xserver 21.1.2
+    
+    Signed-off-by: Povilas Kanapickas <povi...@radix.lt>
+
+commit 9fe2991075aca3321d59d03f3e45faca6cb718b8
+Author: Sam James <s...@gentoo.org>
+Date:   Wed Dec 15 10:41:22 2021 +0200
+
+    hw/xfree86: fix sbus build for SPARC
+    
+    Initially reported downstream in Gentoo. Manifests with errors like:
+    ```
+    gnu/bin/ld: hw/xfree86/common/libxorg_common.a(xf86fbBus.c.o): in function 
`xf86ClaimFbSlot':
+    xf86fbBus.c:(.text+0x20): undefined reference to `sbusSlotClaimed'
+    
/usr/lib/gcc/sparc-unknown-linux-gnu/11.2.0/../../../../sparc-unknown-linux-gnu/bin/ld:
 xf86fbBus.c:(.text+0x2c): undefined reference to `sbusSlotClaimed'
+    ```
+    
+    While we use the headers in meson.build, we don't reference xf86sbusBus.c
+    which defines the missing symbols like sbusSlotClaimed.
+    
+    Bug: https://bugs.gentoo.org/828513
+    Signed-off-by: Sam James <s...@gentoo.org>
+    (cherry picked from commit 6c1a1fcc4bff90546ebc954f428c6df97005ea50)
+
+commit 0b67785cd13e65d37416f75ab938bdc49cf4732f
+Author: Povilas Kanapickas <povi...@radix.lt>
+Date:   Wed Dec 15 10:41:21 2021 +0200
+
+    render: Fix out of bounds access in SProcRenderCompositeGlyphs()
+    
+    ZDI-CAN-14192, CVE-2021-4008
+    
+    This vulnerability was discovered and the fix was suggested by:
+    Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
+    
+    Signed-off-by: Povilas Kanapickas <povi...@radix.lt>
+    (cherry picked from commit ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60)
+
+commit 7209982d2a89f2e27d2f83f8952e9512be813aa4
+Author: Povilas Kanapickas <povi...@radix.lt>
+Date:   Wed Dec 15 10:41:20 2021 +0200
+
+    Xext: Fix out of bounds access in SProcScreenSaverSuspend()
+    
+    ZDI-CAN-14951, CVE-2021-4010
+    
+    This vulnerability was discovered and the fix was suggested by:
+    Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
+    
+    Signed-off-by: Povilas Kanapickas <povi...@radix.lt>
+    (cherry picked from commit 6c4c53010772e3cb4cb8acd54950c8eec9c00d21)
+
+commit 6f09e7d3913a8188e32062f5e196bebb06bab140
+Author: Povilas Kanapickas <povi...@radix.lt>
+Date:   Wed Dec 15 10:41:19 2021 +0200
+
+    xfixes: Fix out of bounds access in *ProcXFixesCreatePointerBarrier()
+    
+    ZDI-CAN-14950, CVE-2021-4009
+    
+    This vulnerability was discovered and the fix was suggested by:
+    Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
+    
+    Signed-off-by: Povilas Kanapickas <povi...@radix.lt>
+    (cherry picked from commit b5196750099ae6ae582e1f46bd0a6dad29550e02)
+
+commit a82d523edb30e5856adca9f258ac716108c71f19
+Author: Povilas Kanapickas <povi...@radix.lt>
+Date:   Wed Dec 15 10:41:18 2021 +0200
+
+    record: Fix out of bounds access in SwapCreateRegister()
+    
+    ZDI-CAN-14952, CVE-2021-4011
+    
+    This vulnerability was discovered and the fix was suggested by:
+    Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
+    
+    Signed-off-by: Povilas Kanapickas <povi...@radix.lt>
+    (cherry picked from commit e56f61c79fc3cee26d83cda0f84ae56d5979f768)
+
+commit a39218d99c6961dda0142d9956eb7404a37d9bd2
+Author: Matthieu Herrb <matth...@herrb.eu>
+Date:   Wed Dec 15 10:41:17 2021 +0200
+
+    remove the PRE_RELEASE message.
+    
+    With the new numbering scheme, XORG_VERISON_SNAP doesn't mean
+    a pre-release version anymore.
+    
+    Signed-off-by: Matthieu Herrb <matth...@herrb.eu>
+    (cherry picked from commit 4de9666b6d3c86660d728ddfc13d88700e5ff20d)
+
+commit fc2eb7e8cc19a41e034f2f4286af58f8b4825d65
+Author: Matt Turner <matts...@gmail.com>
+Date:   Tue Dec 7 21:39:58 2021 -0800
+
+    test: #undef NDEBUG so assert is not compiled away
+    
+    (cherry picked from commit d189102c783653a10931051175de24277a157331)
+
+commit 7caf29ca6607ddf4c19a81d19c0f4acc6deb8936
+Author: Povilas Kanapickas <povi...@radix.lt>
+Date:   Sat Nov 13 16:42:36 2021 +0200
+
+    meson: Correctly set DDXOSVERRORF and DDXBEFORERESET on xwin
+    
+    This worked with autotools, but not meson build system.
+    
+    Signed-off-by: Povilas Kanapickas <povi...@radix.lt>
+    (cherry picked from commit 04c93b98e9e4593aa2e6701bb08f5e27c3544d8a)
+
+commit 101791f80fdefea738421a414177899db7c76e83
+Author: Jonathan Gray <j...@jsg.id.au>
+Date:   Fri Dec 3 19:17:18 2021 +1100
+
+    glamor: fix free of uninitialised pointers
+    
+    Attempting to run fvwm on a x61/965gm with xserver 1.21.1 with the
+    modesetting driver on OpenBSD/amd64 would cause the xserver to
+    reliably crash.
+    
+    I tracked this down to the free() calls introduced in
+    2906ee5e4a722138cccb3265a615da7705a52589
+    (d1ca47e1242b51c79cec7287f52c36c8e494706b in branch).
+    
+    clang also warns about this:
+    glamor_program.c:296:13: warning: variable 'vs_prog_string' is used 
uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
+    glamor_program.c:290:9: warning: variable 'vs_prog_string' is used 
uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
+    glamor_program.c:288:9: warning: variable 'vs_prog_string' is used 
uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
+    glamor_program.c:277:13: warning: variable 'vs_prog_string' is used 
uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
+    glamor_program.c:296:13: warning: variable 'fs_prog_string' is used 
uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
+    glamor_program.c:290:9: warning: variable 'fs_prog_string' is used 
uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
+    glamor_program.c:288:9: warning: variable 'fs_prog_string' is used 
uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
+    glamor_program.c:277:13: warning: variable 'fs_prog_string' is used 
uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
+    
+    Signed-off-by: Jonathan Gray <j...@jsg.id.au>
+    Reviewed-by: Olivier Fourdan <ofour...@redhat.com>
+    Fixes: 2906ee5e4 ("glamor: Fix leak in glamor_build_program()")
+    (cherry picked from commit 5ac6319776b13f96a2b336da4b35237618a5b001)
+
+commit 2c6989f81e62bac05a583c39fa09a06172d1ece5
+Author: Peter Hutterer <peter.hutte...@who-t.net>
+Date:   Thu Dec 2 10:41:03 2021 +1000
+
+    xkb: fix XkbSetMap check for the keytypes count
+    
+    The previous if/else condition resulted in us always setting the key
+    type count to the current number of key types. Split this up correctly.
+    
+    Regression introduced in de940e06f8733d87bbb857aef85d830053442cfe
+    
+    Fixes #1249
+    
+    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
+    (cherry picked from commit be16bd8543f80ad2933ec9c37f082617c7084165)
+
+commit 49444ce9f7ad34fff6ff94a9db95337f4bfd7b03
+Author: Povilas Kanapickas <povi...@radix.lt>
+Date:   Sat Nov 13 17:23:54 2021 +0200
+
+    Revert "hw/xfree86: Propagate physical dimensions from DRM connector"
+    
+    Quite a lot of applications currently expect the screen DPI exposed by
+    the X server to be 96 even when the real display DPI is different.
+    Additionally, currently Xwayland completely ignores any hardware
+    information and sets the DPI to 96. Accordingly the new behavior, even
+    if it fixes a bug, should not be enabled automatically to all users.
+    
+    A better solution would be to make the default DPI stay as is and enable
+    the correct behavior with a command line option (maybe -dpi auto, or
+    similar). For now let's just revert the bug fix.
+    
+    This reverts commit 05b3c681ea2f478c0cb941c2f8279919cf78de6d.
+    
+    Signed-off-by: Povilas Kanapickas <povi...@radix.lt>
+    (cherry picked from commit 35af1299e73483eaf93d913a960e1d1738bc7de6)
+
+commit 6f11b3c803898e0effe6ade2ae951f5758936152
+Author: Dave Airlie <airl...@redhat.com>
+Date:   Thu Nov 11 06:35:19 2021 +1000
+
+    dri2: add crocus to the list of va_gl users
+    
+    (cherry picked from commit a7b0a7fabd137183cc42a5edb15697e354c4450c)
+
+commit 8eb1396d3ecfd2bf968105a99759ae9445bdf768
+Author: Jocelyn Falempe <jfale...@redhat.com>
+Date:   Thu Nov 18 14:51:21 2021 +0100
+
+    xf86/logind: Fix drm_drop_master before vt_reldisp
+    
+    When switching to VT, the ioctl DRM_DROP_MASTER must be done before
+    the ioctl VT_RELDISP. Otherwise the kernel can't change the modesetting
+    reliably, and this leads to the console not showing up in some cases, like
+    after unplugging a docking station with a DP or HDMI monitor.
+    
+    Before doing the VT_RELDISP, send a dbus message to logind, to
+    pause the drm device, so logind will do the ioctl DRM_DROP_MASTER.
+    
+    With this patch, it changes the order logind will send the resume
+    event, and drm will be sent last instead of first.
+    so there is a also fix to call systemd_logind_vtenter() at the right time.
+    
+    Signed-off-by: Jocelyn Falempe <jfale...@redhat.com>
+    Reviewed-by: Hans de Goede <hdego...@redhat.com>
+    (cherry picked from commit da9d012a9c760896941769d4127e3cfb1a7a9f03)
+
+commit 6834f977a5eadbc3289f27b2bb83997132a39fdd
+Author: Jocelyn Falempe <jfale...@redhat.com>
+Date:   Thu Nov 18 14:45:42 2021 +0100
+
+    xf86/logind: fix call systemd_logind_vtenter after receiving drm device 
resume
+    
+    logind send the resume event for input devices and drm device,
+    in any order. if we call vt_enter before logind resume the drm device,
+    it leads to a driver error, because logind has not done the
+    DRM_IOCTL_SET_MASTER on it.
+    
+    Keep the old workaround to make sure we call systemd_logind_vtenter at
+    least once if there are no platform device
+    
+    Signed-off-by: Jocelyn Falempe <jfale...@redhat.com>
+    Reviewed-by: Hans de Goede <hdego...@redhat.com>
+    (cherry picked from commit f5bd039633fa8360a10bd2aabb0111571f6275b0)
+
+commit 0ed7b1224ef17ff3d27e791e03e0d98dd6373c8a
+Author: nerdopolis <bluescreen_aven...@verizon.net>
+Date:   Fri Oct 8 21:51:43 2021 -0400
+
+    xfree86: On Linux, while only seat0 can have TTYs, don't assmume all 
seat0s have TTYs
+    
+    (cherry picked from commit b8c12aac651d626c5120e6e8e18b42e7528caf43)
+
 commit 6b997fb74e5c9473ee3989fca8d592a3a0d16067
 Author: Povilas Kanapickas <povi...@radix.lt>
 Date:   Sun Nov 7 01:33:56 2021 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/Xext/saver.c 
new/xorg-server-21.1.2/Xext/saver.c
--- old/xorg-server-21.1.1/Xext/saver.c 2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/Xext/saver.c 2021-12-15 14:51:50.000000000 +0100
@@ -1351,8 +1351,8 @@
     REQUEST(xScreenSaverSuspendReq);
 
     swaps(&stuff->length);
-    swapl(&stuff->suspend);
     REQUEST_SIZE_MATCH(xScreenSaverSuspendReq);
+    swapl(&stuff->suspend);
     return ProcScreenSaverSuspend(client);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/configure 
new/xorg-server-21.1.2/configure
--- old/xorg-server-21.1.1/configure    2021-11-07 00:45:29.000000000 +0100
+++ new/xorg-server-21.1.2/configure    2021-12-15 14:52:01.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xorg-server 21.1.1.
+# Generated by GNU Autoconf 2.69 for xorg-server 21.1.2.
 #
 # Report bugs to <https://gitlab.freedesktop.org/xorg/xserver/issues>.
 #
@@ -651,8 +651,8 @@
 # Identity of this package.
 PACKAGE_NAME='xorg-server'
 PACKAGE_TARNAME='xorg-server'
-PACKAGE_VERSION='21.1.1'
-PACKAGE_STRING='xorg-server 21.1.1'
+PACKAGE_VERSION='21.1.2'
+PACKAGE_STRING='xorg-server 21.1.2'
 PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/xserver/issues'
 PACKAGE_URL=''
 
@@ -1971,7 +1971,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xorg-server 21.1.1 to adapt to many kinds of systems.
+\`configure' configures xorg-server 21.1.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2042,7 +2042,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xorg-server 21.1.1:";;
+     short | recursive ) echo "Configuration of xorg-server 21.1.2:";;
    esac
   cat <<\_ACEOF
 
@@ -2227,10 +2227,10 @@
                           org.x)
   --with-bundle-version=VERSION
                           Version to use for X11.app's CFBundleVersion
-                          (default: 21.1.1)
+                          (default: 21.1.2)
   --with-bundle-version-string=VERSION
                           Version to use for X11.app's
-                          CFBundleShortVersionString (default: 21.1.1)
+                          CFBundleShortVersionString (default: 21.1.2)
   --with-sparkle-feed-url=URL
                           URL for the Sparkle feed (default:
                           https://www.xquartz.org/releases/sparkle/release.xml)
@@ -2443,7 +2443,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xorg-server configure 21.1.1
+xorg-server configure 21.1.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3152,7 +3152,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xorg-server $as_me 21.1.1, which was
+It was created by xorg-server $as_me 21.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3500,7 +3500,7 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-RELEASE_DATE="2021-11-07"
+RELEASE_DATE="2021-12-15"
 RELEASE_NAME="Caramel Ice Cream"
 
 
@@ -4019,7 +4019,7 @@
 
 # Define the identity of the package.
  PACKAGE='xorg-server'
- VERSION='21.1.1'
+ VERSION='21.1.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -23526,7 +23526,7 @@
 if test "${with_bundle_version+set}" = set; then :
   withval=$with_bundle_version;  BUNDLE_VERSION="${withval}"
 else
-   BUNDLE_VERSION="21.1.1"
+   BUNDLE_VERSION="21.1.2"
 fi
 
 
@@ -32078,7 +32078,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xorg-server $as_me 21.1.1, which was
+This file was extended by xorg-server $as_me 21.1.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -32144,7 +32144,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xorg-server config.status 21.1.1
+xorg-server config.status 21.1.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/configure.ac 
new/xorg-server-21.1.2/configure.ac
--- old/xorg-server-21.1.1/configure.ac 2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/configure.ac 2021-12-15 14:51:50.000000000 +0100
@@ -26,8 +26,8 @@
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.60)
-AC_INIT([xorg-server], 21.1.1, 
[https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
-RELEASE_DATE="2021-11-07"
+AC_INIT([xorg-server], 21.1.2, 
[https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
+RELEASE_DATE="2021-12-15"
 RELEASE_NAME="Caramel Ice Cream"
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/glamor/glamor_program.c 
new/xorg-server-21.1.2/glamor/glamor_program.c
--- old/xorg-server-21.1.1/glamor/glamor_program.c      2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/glamor/glamor_program.c      2021-12-15 
14:51:50.000000000 +0100
@@ -260,8 +260,8 @@
     char                        *fs_vars = NULL;
     char                        *vs_vars = NULL;
 
-    char                        *vs_prog_string;
-    char                        *fs_prog_string;
+    char                        *vs_prog_string = NULL;
+    char                        *fs_prog_string = NULL;
 
     GLint                       fs_prog, vs_prog;
     Bool                        gpu_shader4 = FALSE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/hw/xfree86/common/meson.build 
new/xorg-server-21.1.2/hw/xfree86/common/meson.build
--- old/xorg-server-21.1.1/hw/xfree86/common/meson.build        2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/common/meson.build        2021-12-15 
14:51:50.000000000 +0100
@@ -71,6 +71,10 @@
 
 if get_option('pciaccess')
     srcs_xorg_common += ['xf86pciBus.c', 'xf86VGAarbiter.c']
+
+    if host_machine.cpu() == 'sparc' or host_machine.cpu() == 'sparc64'
+        srcs_xorg_common += 'xf86sbusBus.c'
+    endif
 endif
 
 srcs_xorg_common += custom_target(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/hw/xfree86/common/xf86Events.c 
new/xorg-server-21.1.2/hw/xfree86/common/xf86Events.c
--- old/xorg-server-21.1.1/hw/xfree86/common/xf86Events.c       2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/common/xf86Events.c       2021-12-15 
14:51:50.000000000 +0100
@@ -382,6 +382,17 @@
     for (i = 0; i < xf86NumGPUScreens; i++)
         xf86GPUScreens[i]->LeaveVT(xf86GPUScreens[i]);
 
+    if (systemd_logind_controls_session()) {
+        for (i = 0; i < xf86_num_platform_devices; i++) {
+            if (xf86_platform_devices[i].flags & XF86_PDEV_SERVER_FD) {
+                int major, minor;
+                major = xf86_platform_odev_attributes(i)->major;
+                minor = xf86_platform_odev_attributes(i)->minor;
+                systemd_logind_drop_master(major, minor);
+            }
+        }
+    }
+
     if (!xf86VTSwitchAway())
         goto switch_failed;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/hw/xfree86/common/xf86Helper.c 
new/xorg-server-21.1.2/hw/xfree86/common/xf86Helper.c
--- old/xorg-server-21.1.1/hw/xfree86/common/xf86Helper.c       2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/common/xf86Helper.c       2021-12-15 
14:51:50.000000000 +0100
@@ -55,7 +55,6 @@
 #include "xf86Xinput.h"
 #include "xf86InPriv.h"
 #include "mivalidate.h"
-#include "xf86Crtc.h"
 
 /* For xf86GetClocks */
 #if defined(CSRG_BASED) || defined(__GNU__)
@@ -852,9 +851,8 @@
 {
     MessageType from = X_DEFAULT;
     xf86MonPtr DDC = (xf86MonPtr) (pScrn->monitor->DDC);
-    int probedWidthmm, probedHeightmm;
+    int ddcWidthmm, ddcHeightmm;
     int widthErr, heightErr;
-    xf86OutputPtr compat = xf86CompatOutput(pScrn);
 
     /* XXX Maybe there is no need for widthmm/heightmm in ScrnInfoRec */
     pScrn->widthmm = pScrn->monitor->widthmm;
@@ -864,15 +862,11 @@
         /* DDC gives display size in mm for individual modes,
          * but cm for monitor
          */
-        probedWidthmm = DDC->features.hsize * 10;  /* 10mm in 1cm */
-        probedHeightmm = DDC->features.vsize * 10; /* 10mm in 1cm */
-    }
-    else if (compat && compat->mm_width > 0 && compat->mm_height > 0) {
-        probedWidthmm = compat->mm_width;
-        probedHeightmm = compat->mm_height;
+        ddcWidthmm = DDC->features.hsize * 10;  /* 10mm in 1cm */
+        ddcHeightmm = DDC->features.vsize * 10; /* 10mm in 1cm */
     }
     else {
-        probedWidthmm = probedHeightmm = 0;
+        ddcWidthmm = ddcHeightmm = 0;
     }
 
     if (monitorResolution > 0) {
@@ -898,15 +892,15 @@
                    pScrn->widthmm, pScrn->heightmm);
 
         /* Warn if config and probe disagree about display size */
-        if (probedWidthmm && probedHeightmm) {
+        if (ddcWidthmm && ddcHeightmm) {
             if (pScrn->widthmm > 0) {
-                widthErr = abs(probedWidthmm - pScrn->widthmm);
+                widthErr = abs(ddcWidthmm - pScrn->widthmm);
             }
             else {
                 widthErr = 0;
             }
             if (pScrn->heightmm > 0) {
-                heightErr = abs(probedHeightmm - pScrn->heightmm);
+                heightErr = abs(ddcHeightmm - pScrn->heightmm);
             }
             else {
                 heightErr = 0;
@@ -915,17 +909,17 @@
                 /* Should include config file name for monitor here */
                 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
                            "Probed monitor is %dx%d mm, using Displaysize 
%dx%d mm\n",
-                           probedWidthmm, probedHeightmm, pScrn->widthmm,
+                           ddcWidthmm, ddcHeightmm, pScrn->widthmm,
                            pScrn->heightmm);
             }
         }
     }
-    else if (probedWidthmm && probedHeightmm) {
+    else if (ddcWidthmm && ddcHeightmm) {
         from = X_PROBED;
         xf86DrvMsg(pScrn->scrnIndex, from, "Display dimensions: (%d, %d) mm\n",
-                   probedWidthmm, probedHeightmm);
-        pScrn->widthmm = probedWidthmm;
-        pScrn->heightmm = probedHeightmm;
+                   ddcWidthmm, ddcHeightmm);
+        pScrn->widthmm = ddcWidthmm;
+        pScrn->heightmm = ddcHeightmm;
         if (pScrn->widthmm > 0) {
             pScrn->xDpi =
                 (int) ((double) pScrn->virtualX * MMPERINCH / pScrn->widthmm);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/hw/xfree86/common/xf86Init.c 
new/xorg-server-21.1.2/hw/xfree86/common/xf86Init.c
--- old/xorg-server-21.1.1/hw/xfree86/common/xf86Init.c 2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/common/xf86Init.c 2021-12-15 
14:51:50.000000000 +0100
@@ -85,6 +85,11 @@
 #include <X11/extensions/dpmsconst.h>
 #include "dpmsproc.h"
 #endif
+
+#ifdef __linux__
+#include <linux/major.h>
+#include <sys/sysmacros.h>
+#endif
 #include <hotplug.h>
 
 void (*xf86OSPMClose) (void) = NULL;
@@ -105,23 +110,10 @@
 static int numFormats = 7;
 static Bool formatsDone = FALSE;
 
-#ifndef PRE_RELEASE
-#define PRE_RELEASE XORG_VERSION_SNAP
-#endif
 
 static void
 xf86PrintBanner(void)
 {
-#if PRE_RELEASE
-    xf86ErrorFVerb(0, "\n"
-                   "This is a pre-release version of the X server from "
-                   XVENDORNAME ".\n" "It is not supported in any way.\n"
-                   "Bugs may be filed in the bugzilla at 
http://bugs.freedesktop.org/.\n";
-                   "Select the \"xorg\" product for bugs you find in this 
release.\n"
-                   "Before reporting bugs in pre-release versions please check 
the\n"
-                   "latest version in the X.Org Foundation git repository.\n"
-                   "See http://wiki.x.org/wiki/GitPage for git access 
instructions.\n");
-#endif
     xf86ErrorFVerb(0, "\nX.Org X Server %d.%d.%d",
                    XORG_VERSION_MAJOR, XORG_VERSION_MINOR, XORG_VERSION_PATCH);
 #if XORG_VERSION_SNAP > 0
@@ -201,6 +193,17 @@
     return PrivsElevated();
 }
 
+Bool
+xf86HasTTYs(void)
+{
+#ifdef __linux__
+    struct stat tty0devAttributes;
+    return (stat("/dev/tty0", &tty0devAttributes) == 0 && 
major(tty0devAttributes.st_rdev) == TTY_MAJOR);
+#else
+    return TRUE;
+#endif
+}
+
 static void
 xf86AutoConfigOutputDevices(void)
 {
@@ -425,7 +428,7 @@
                 want_hw_access = TRUE;
 
             /* Non-seat0 X servers should not open console */
-            if (!(flags & HW_SKIP_CONSOLE) && !ServerIsNotSeat0())
+            if (!(flags & HW_SKIP_CONSOLE) && !ServerIsNotSeat0() && 
xf86HasTTYs())
                 xorgHWOpenConsole = TRUE;
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/hw/xfree86/common/xf86Priv.h 
new/xorg-server-21.1.2/hw/xfree86/common/xf86Priv.h
--- old/xorg-server-21.1.1/hw/xfree86/common/xf86Priv.h 2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/common/xf86Priv.h 2021-12-15 
14:51:50.000000000 +0100
@@ -158,6 +158,8 @@
 xf86CallDriverProbe(struct _DriverRec *drv, Bool detect_only);
 extern _X_EXPORT Bool
 xf86PrivsElevated(void);
+extern _X_EXPORT Bool
+xf86HasTTYs(void);
 
 #endif                          /* _NO_XF86_PROTOTYPES */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/hw/xfree86/drivers/modesetting/dri2.c 
new/xorg-server-21.1.2/hw/xfree86/drivers/modesetting/dri2.c
--- old/xorg-server-21.1.1/hw/xfree86/drivers/modesetting/dri2.c        
2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/drivers/modesetting/dri2.c        
2021-12-15 14:51:50.000000000 +0100
@@ -1086,7 +1086,8 @@
          * guess that the DRI and VDPAU drivers have the same name.
          */
         if (strcmp(driver_names[0], "i965") == 0 ||
-            strcmp(driver_names[0], "iris") == 0) {
+            strcmp(driver_names[0], "iris") == 0 ||
+            strcmp(driver_names[0], "crocus") == 0) {
             driver_names[1] = "va_gl";
         } else {
             driver_names[1] = driver_names[0];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/hw/xfree86/modes/xf86Crtc.c 
new/xorg-server-21.1.2/hw/xfree86/modes/xf86Crtc.c
--- old/xorg-server-21.1.1/hw/xfree86/modes/xf86Crtc.c  2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/modes/xf86Crtc.c  2021-12-15 
14:51:50.000000000 +0100
@@ -3256,10 +3256,8 @@
     free(output->MonInfo);
 
     output->MonInfo = edid_mon;
-    if (edid_mon) {
-        output->mm_width = 0;
-        output->mm_height = 0;
-    }
+    output->mm_width = 0;
+    output->mm_height = 0;
 
     if (debug_modes) {
         xf86DrvMsg(scrn->scrnIndex, X_INFO, "EDID for output %s\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/hw/xfree86/modes/xf86RandR12.c 
new/xorg-server-21.1.2/hw/xfree86/modes/xf86RandR12.c
--- old/xorg-server-21.1.1/hw/xfree86/modes/xf86RandR12.c       2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/modes/xf86RandR12.c       2021-12-15 
14:51:50.000000000 +0100
@@ -806,12 +806,6 @@
                 mmWidth = output->conf_monitor->mon_width;
                 mmHeight = output->conf_monitor->mon_height;
             }
-            else if (output &&
-                (output->mm_width > 0 &&
-                 output->mm_height > 0)) {
-                mmWidth = output->mm_width;
-                mmHeight = output->mm_height;
-            }
             else {
                 /*
                  * Otherwise, just set the screen to DEFAULT_DPI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/hw/xfree86/os-support/linux/systemd-logind.c 
new/xorg-server-21.1.2/hw/xfree86/os-support/linux/systemd-logind.c
--- old/xorg-server-21.1.1/hw/xfree86/os-support/linux/systemd-logind.c 
2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/os-support/linux/systemd-logind.c 
2021-12-15 14:51:50.000000000 +0100
@@ -38,6 +38,7 @@
 #include "xf86.h"
 #include "xf86platformBus.h"
 #include "xf86Xinput.h"
+#include "xf86Priv.h"
 #include "globals.h"
 
 #include "systemd-logind.h"
@@ -302,6 +303,20 @@
     dbus_error_free(&error);
 }
 
+/*
+ * Send a message to logind, to pause the drm device
+ * and ensure the drm_drop_master is done before
+ * VT_RELDISP when switching VT
+ */
+void systemd_logind_drop_master(int _major, int _minor)
+{
+    struct systemd_logind_info *info = &logind_info;
+    dbus_int32_t major = _major;
+    dbus_int32_t minor = _minor;
+
+    systemd_logind_ack_pause(info, minor, major);
+}
+
 static DBusHandlerResult
 message_filter(DBusConnection * connection, DBusMessage * message, void *data)
 {
@@ -393,14 +408,16 @@
         /* info->vt_active gets set by systemd_logind_vtenter() */
         info->active = TRUE;
 
-        if (pdev)
+        if (pdev) {
             pdev->flags &= ~XF86_PDEV_PAUSED;
-        else
+            systemd_logind_vtenter();
+        } else
             systemd_logind_set_input_fd_for_all_devs(major, minor, fd,
                                                      info->vt_active);
 
-        /* Always call vtenter(), in case there are only legacy video devs */
-        systemd_logind_vtenter();
+        /* Always call vtenter(), only if there are only legacy video devs */
+        if (!xf86_num_platform_devices)
+            systemd_logind_vtenter();
     }
     return DBUS_HANDLER_RESULT_HANDLED;
 }
@@ -583,7 +600,7 @@
 int
 systemd_logind_init(void)
 {
-    if (!ServerIsNotSeat0() && linux_parse_vt_settings(TRUE) && 
!linux_get_keeptty()) {
+    if (!ServerIsNotSeat0() && xf86HasTTYs() && linux_parse_vt_settings(TRUE) 
&& !linux_get_keeptty()) {
         LogMessage(X_INFO,
             "systemd-logind: logind integration requires -keeptty and "
             "-keeptty was not provided, disabling logind integration\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/hw/xfree86/os-support/meson.build 
new/xorg-server-21.1.2/hw/xfree86/os-support/meson.build
--- old/xorg-server-21.1.1/hw/xfree86/os-support/meson.build    2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/hw/xfree86/os-support/meson.build    2021-12-15 
14:51:50.000000000 +0100
@@ -19,7 +19,7 @@
     if host_machine.system() != 'linux'
         srcs_xorg_os_support += 'bus/bsd_pci.c'
     endif
-    if host_machine.cpu() == 'sparc'
+    if host_machine.cpu() == 'sparc' or host_machine.cpu() == 'sparc64'
         srcs_xorg_os_support += 'bus/Sbus.c'
         install_data('bus/xf86Sbus.h', install_dir: xorgsdkdir)
     endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/include/meson.build 
new/xorg-server-21.1.2/include/meson.build
--- old/xorg-server-21.1.1/include/meson.build  2021-11-07 00:45:18.000000000 
+0100
+++ new/xorg-server-21.1.2/include/meson.build  2021-12-15 14:51:50.000000000 
+0100
@@ -245,6 +245,8 @@
 conf_data.set('HAVE_APM', (build_apm or build_acpi) ? '1' : false)
 conf_data.set('HAVE_ACPI', build_acpi ? '1' : false)
 
+conf_data.set('DDXOSVERRORF', build_xwin ? '1' : false)
+conf_data.set('DDXBEFORERESET', build_xwin ? '1' : false)
 enable_debugging = get_option('buildtype') == 'debug'
 conf_data.set('DEBUG', enable_debugging ? '1' : false)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/include/systemd-logind.h 
new/xorg-server-21.1.2/include/systemd-logind.h
--- old/xorg-server-21.1.1/include/systemd-logind.h     2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/include/systemd-logind.h     2021-12-15 
14:51:50.000000000 +0100
@@ -33,6 +33,7 @@
 void systemd_logind_release_fd(int major, int minor, int fd);
 int systemd_logind_controls_session(void);
 void systemd_logind_vtenter(void);
+void systemd_logind_drop_master(int major, int minor);
 #else
 #define systemd_logind_init()
 #define systemd_logind_fini()
@@ -40,6 +41,7 @@
 #define systemd_logind_release_fd(major, minor, fd) close(fd)
 #define systemd_logind_controls_session() 0
 #define systemd_logind_vtenter()
+#define systemd_logind_drop_master(major, minor)
 #endif
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/meson.build 
new/xorg-server-21.1.2/meson.build
--- old/xorg-server-21.1.1/meson.build  2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/meson.build  2021-12-15 14:51:50.000000000 +0100
@@ -3,10 +3,10 @@
             'buildtype=debugoptimized',
             'c_std=gnu99',
         ],
-        version: '21.1.1',
+        version: '21.1.2',
         meson_version: '>= 0.47.0',
 )
-release_date = '2021-11-07'
+release_date = '2021-12-15'
 
 add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc'])
 cc = meson.get_compiler('c')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/record/record.c 
new/xorg-server-21.1.2/record/record.c
--- old/xorg-server-21.1.1/record/record.c      2021-11-07 00:45:18.000000000 
+0100
+++ new/xorg-server-21.1.2/record/record.c      2021-12-15 14:51:50.000000000 
+0100
@@ -2516,8 +2516,8 @@
         swapl(pClientID);
     }
     if (stuff->nRanges >
-        client->req_len - bytes_to_int32(sz_xRecordRegisterClientsReq)
-        - stuff->nClients)
+        (client->req_len - bytes_to_int32(sz_xRecordRegisterClientsReq)
+        - stuff->nClients) / bytes_to_int32(sz_xRecordRange))
         return BadLength;
     RecordSwapRanges((xRecordRange *) pClientID, stuff->nRanges);
     return Success;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/render/render.c 
new/xorg-server-21.1.2/render/render.c
--- old/xorg-server-21.1.1/render/render.c      2021-11-07 00:45:18.000000000 
+0100
+++ new/xorg-server-21.1.2/render/render.c      2021-12-15 14:51:50.000000000 
+0100
@@ -2309,6 +2309,9 @@
 
         i = elt->len;
         if (i == 0xff) {
+            if (buffer + 4 > end) {
+                return BadLength;
+            }
             swapl((int *) buffer);
             buffer += 4;
         }
@@ -2319,12 +2322,18 @@
                 buffer += i;
                 break;
             case 2:
+                if (buffer + i * 2 > end) {
+                    return BadLength;
+                }
                 while (i--) {
                     swaps((short *) buffer);
                     buffer += 2;
                 }
                 break;
             case 4:
+                if (buffer + i * 4 > end) {
+                    return BadLength;
+                }
                 while (i--) {
                     swapl((int *) buffer);
                     buffer += 4;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/damage/primitives.c 
new/xorg-server-21.1.2/test/damage/primitives.c
--- old/xorg-server-21.1.1/test/damage/primitives.c     2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/damage/primitives.c     2021-12-15 
14:51:50.000000000 +0100
@@ -31,6 +31,9 @@
  * them.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #include <assert.h>
 #include <stdbool.h>
 #include <stdio.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/fixes.c 
new/xorg-server-21.1.2/test/fixes.c
--- old/xorg-server-21.1.1/test/fixes.c 2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/fixes.c 2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/input.c 
new/xorg-server-21.1.2/test/input.c
--- old/xorg-server-21.1.1/test/input.c 2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/input.c 2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/list.c 
new/xorg-server-21.1.2/test/list.c
--- old/xorg-server-21.1.1/test/list.c  2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/list.c  2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/misc.c 
new/xorg-server-21.1.2/test/misc.c
--- old/xorg-server-21.1.1/test/misc.c  2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/misc.c  2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/signal-logging.c 
new/xorg-server-21.1.2/test/signal-logging.c
--- old/xorg-server-21.1.1/test/signal-logging.c        2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/signal-logging.c        2021-12-15 
14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/string.c 
new/xorg-server-21.1.2/test/string.c
--- old/xorg-server-21.1.1/test/string.c        2021-11-07 00:45:18.000000000 
+0100
+++ new/xorg-server-21.1.2/test/string.c        2021-12-15 14:51:50.000000000 
+0100
@@ -26,6 +26,9 @@
  * provided in os/ subdirectory for some platforms.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/test_xkb.c 
new/xorg-server-21.1.2/test/test_xkb.c
--- old/xorg-server-21.1.1/test/test_xkb.c      2021-11-07 00:45:18.000000000 
+0100
+++ new/xorg-server-21.1.2/test/test_xkb.c      2021-12-15 14:51:50.000000000 
+0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/touch.c 
new/xorg-server-21.1.2/test/touch.c
--- old/xorg-server-21.1.1/test/touch.c 2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/touch.c 2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/xfree86.c 
new/xorg-server-21.1.2/test/xfree86.c
--- old/xorg-server-21.1.1/test/xfree86.c       2021-11-07 00:45:18.000000000 
+0100
+++ new/xorg-server-21.1.2/test/xfree86.c       2021-12-15 14:51:50.000000000 
+0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/test/xi1/protocol-xchangedevicecontrol.c 
new/xorg-server-21.1.2/test/xi1/protocol-xchangedevicecontrol.c
--- old/xorg-server-21.1.1/test/xi1/protocol-xchangedevicecontrol.c     
2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi1/protocol-xchangedevicecontrol.c     
2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/xi2/protocol-common.c 
new/xorg-server-21.1.2/test/xi2/protocol-common.c
--- old/xorg-server-21.1.1/test/xi2/protocol-common.c   2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-common.c   2021-12-15 
14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/xi2/protocol-eventconvert.c 
new/xorg-server-21.1.2/test/xi2/protocol-eventconvert.c
--- old/xorg-server-21.1.1/test/xi2/protocol-eventconvert.c     2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-eventconvert.c     2021-12-15 
14:51:50.000000000 +0100
@@ -20,6 +20,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/test/xi2/protocol-xigetclientpointer.c 
new/xorg-server-21.1.2/test/xi2/protocol-xigetclientpointer.c
--- old/xorg-server-21.1.1/test/xi2/protocol-xigetclientpointer.c       
2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-xigetclientpointer.c       
2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/test/xi2/protocol-xigetselectedevents.c 
new/xorg-server-21.1.2/test/xi2/protocol-xigetselectedevents.c
--- old/xorg-server-21.1.1/test/xi2/protocol-xigetselectedevents.c      
2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-xigetselectedevents.c      
2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/test/xi2/protocol-xipassivegrabdevice.c 
new/xorg-server-21.1.2/test/xi2/protocol-xipassivegrabdevice.c
--- old/xorg-server-21.1.1/test/xi2/protocol-xipassivegrabdevice.c      
2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-xipassivegrabdevice.c      
2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/xi2/protocol-xiquerydevice.c 
new/xorg-server-21.1.2/test/xi2/protocol-xiquerydevice.c
--- old/xorg-server-21.1.1/test/xi2/protocol-xiquerydevice.c    2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-xiquerydevice.c    2021-12-15 
14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/test/xi2/protocol-xiquerypointer.c 
new/xorg-server-21.1.2/test/xi2/protocol-xiquerypointer.c
--- old/xorg-server-21.1.1/test/xi2/protocol-xiquerypointer.c   2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-xiquerypointer.c   2021-12-15 
14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/test/xi2/protocol-xiqueryversion.c 
new/xorg-server-21.1.2/test/xi2/protocol-xiqueryversion.c
--- old/xorg-server-21.1.1/test/xi2/protocol-xiqueryversion.c   2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-xiqueryversion.c   2021-12-15 
14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/test/xi2/protocol-xiselectevents.c 
new/xorg-server-21.1.2/test/xi2/protocol-xiselectevents.c
--- old/xorg-server-21.1.1/test/xi2/protocol-xiselectevents.c   2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-xiselectevents.c   2021-12-15 
14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xorg-server-21.1.1/test/xi2/protocol-xisetclientpointer.c 
new/xorg-server-21.1.2/test/xi2/protocol-xisetclientpointer.c
--- old/xorg-server-21.1.1/test/xi2/protocol-xisetclientpointer.c       
2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-xisetclientpointer.c       
2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/xi2/protocol-xiwarppointer.c 
new/xorg-server-21.1.2/test/xi2/protocol-xiwarppointer.c
--- old/xorg-server-21.1.1/test/xi2/protocol-xiwarppointer.c    2021-11-07 
00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xi2/protocol-xiwarppointer.c    2021-12-15 
14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/xi2/xi2.c 
new/xorg-server-21.1.2/test/xi2/xi2.c
--- old/xorg-server-21.1.1/test/xi2/xi2.c       2021-11-07 00:45:18.000000000 
+0100
+++ new/xorg-server-21.1.2/test/xi2/xi2.c       2021-12-15 14:51:50.000000000 
+0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/test/xtest.c 
new/xorg-server-21.1.2/test/xtest.c
--- old/xorg-server-21.1.1/test/xtest.c 2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/test/xtest.c 2021-12-15 14:51:50.000000000 +0100
@@ -21,6 +21,9 @@
  *  DEALINGS IN THE SOFTWARE.
  */
 
+/* Test relies on assert() */
+#undef NDEBUG
+
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/xfixes/cursor.c 
new/xorg-server-21.1.2/xfixes/cursor.c
--- old/xorg-server-21.1.1/xfixes/cursor.c      2021-11-07 00:45:18.000000000 
+0100
+++ new/xorg-server-21.1.2/xfixes/cursor.c      2021-12-15 14:51:50.000000000 
+0100
@@ -1010,7 +1010,8 @@
 {
     REQUEST(xXFixesCreatePointerBarrierReq);
 
-    REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, 
pad_to_int32(stuff->num_devices));
+    REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq,
+                       pad_to_int32(stuff->num_devices * sizeof(CARD16)));
     LEGAL_NEW_RESOURCE(stuff->barrier, client);
 
     return XICreatePointerBarrier(client, stuff);
@@ -1027,7 +1028,8 @@
 
     swaps(&stuff->length);
     swaps(&stuff->num_devices);
-    REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, 
pad_to_int32(stuff->num_devices));
+    REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq,
+                       pad_to_int32(stuff->num_devices * sizeof(CARD16)));
 
     swapl(&stuff->barrier);
     swapl(&stuff->window);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xorg-server-21.1.1/xkb/xkb.c 
new/xorg-server-21.1.2/xkb/xkb.c
--- old/xorg-server-21.1.1/xkb/xkb.c    2021-11-07 00:45:18.000000000 +0100
+++ new/xorg-server-21.1.2/xkb/xkb.c    2021-12-15 14:51:50.000000000 +0100
@@ -2511,15 +2511,14 @@
         }
     }
 
-    if ((req->present & XkbKeyTypesMask) &&
-        (!CheckKeyTypes(client, xkb, req, (xkbKeyTypeWireDesc **) &values,
-                        &nTypes, mapWidths, doswap))) {
-        client->errorValue = nTypes;
-        return BadValue;
-    }
-    else {
+    if (!(req->present & XkbKeyTypesMask)) {
         nTypes = xkb->map->num_types;
     }
+    else 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];

Reply via email to