[packages/xorg-xserver-server] up to 1.20.10 (fixes CVE-2020-14360 CVE-2020-25712)
atler
atler at pld-linux.org
Wed Dec 2 01:26:01 CET 2020
commit 3ccb0d89a65bbe0a8237aa8b2472be8b577f315a
Author: Jan Palus <atler at pld-linux.org>
Date: Wed Dec 2 01:24:30 2020 +0100
up to 1.20.10 (fixes CVE-2020-14360 CVE-2020-25712)
xorg-xserver-server-crash-revert.patch | 232 ---------------------------------
xorg-xserver-server.spec | 8 +-
2 files changed, 3 insertions(+), 237 deletions(-)
---
diff --git a/xorg-xserver-server.spec b/xorg-xserver-server.spec
index 95af5ef..c759af9 100644
--- a/xorg-xserver-server.spec
+++ b/xorg-xserver-server.spec
@@ -34,19 +34,18 @@
Summary: X.org server
Summary(pl.UTF-8): Serwer X.org
Name: xorg-xserver-server
-Version: 1.20.9
-Release: 4
+Version: 1.20.10
+Release: 1
License: MIT
Group: X11/Servers
Source0: https://xorg.freedesktop.org/releases/individual/xserver/xorg-server-%{version}.tar.bz2
-# Source0-md5: afcae2f46d47c33863cab7fd9db7279a
+# Source0-md5: 8cf8bd1f33e3736bc8dd279b20a32399
Source1: 10-quirks.conf
Source2: xserver.pamd
Source10: %{name}-Xvfb.init
Source11: %{name}-Xvfb.sysconfig
Source12: xvfb-run.sh
Patch1: %{name}-xwrapper-pam.patch
-Patch2: %{name}-crash-revert.patch
Patch4: %{name}-builtin-SHA1.patch
@@ -425,7 +424,6 @@ Biblioteka rozszerzenia GLX dla serwera X.org.
%prep
%setup -q -n xorg-server-%{version}
%patch1 -p1
-%patch2 -p1
%patch4 -p1
diff --git a/xorg-xserver-server-crash-revert.patch b/xorg-xserver-server-crash-revert.patch
deleted file mode 100644
index 4cb6dc5..0000000
--- a/xorg-xserver-server-crash-revert.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-From 4b6fce5975c2f931a0478cf4deeec97529b05eb6 Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan at redhat.com>
-Date: Tue, 8 Sep 2020 10:01:55 +0200
-Subject: Revert "linux: Fix platform device probe for DT-based PCI"
-
-This reverts commit 249a12c54a9316b089bd22683c011519348496df.
-
-https://gitlab.freedesktop.org/xorg/xserver/-/issues/1068
----
- config/udev.c | 27 +--------------------------
- 1 file changed, 1 insertion(+), 26 deletions(-)
-
-diff --git a/config/udev.c b/config/udev.c
-index b00d90237..14409549b 100644
---- a/config/udev.c
-+++ b/config/udev.c
-@@ -464,31 +464,6 @@ config_udev_fini(void)
-
- #ifdef CONFIG_UDEV_KMS
-
--/* Find the last occurrence of the needle in haystack */
--static char *strrstr(const char *haystack, const char *needle)
--{
-- char *prev, *last, *tmp;
--
-- prev = strstr(haystack, needle);
-- if (!prev)
-- return NULL;
--
-- last = prev;
-- tmp = prev + 1;
--
-- while (tmp) {
-- last = strstr(tmp, needle);
-- if (!last)
-- return prev;
-- else {
-- prev = last;
-- tmp = prev + 1;
-- }
-- }
--
-- return last;
--}
--
- static void
- config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path, const char *syspath,
- int major, int minor,
-@@ -503,7 +478,7 @@ config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path
- attribs->minor = minor;
-
- value = udev_device_get_property_value(udev_device, "ID_PATH");
-- if (value && (str = strrstr(value, "pci-"))) {
-+ if (value && (str = strstr(value, "pci-"))) {
- attribs->busid = XNFstrdup(str);
- attribs->busid[3] = ':';
- }
---
-cgit v1.2.1
-
-From 39cb95e959fab97a7e255dda1a1599b096fb0f7e Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan at redhat.com>
-Date: Tue, 8 Sep 2020 10:03:11 +0200
-Subject: Revert "linux: Fix platform device PCI detection for complex bus
- topologies"
-
-This reverts commit 5c96eb5f44e62a4cfe835023cde304eb5795b8fd.
-
-https://gitlab.freedesktop.org/xorg/xserver/-/issues/1068
----
- config/udev.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/config/udev.c b/config/udev.c
-index 14409549b..8c6c4b666 100644
---- a/config/udev.c
-+++ b/config/udev.c
-@@ -470,7 +470,7 @@ config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path
- config_odev_probe_proc_ptr probe_callback)
- {
- struct OdevAttributes *attribs = config_odev_allocate_attributes();
-- const char *value, *str;
-+ const char *value;
-
- attribs->path = XNFstrdup(path);
- attribs->syspath = XNFstrdup(syspath);
-@@ -478,8 +478,8 @@ config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path
- attribs->minor = minor;
-
- value = udev_device_get_property_value(udev_device, "ID_PATH");
-- if (value && (str = strstr(value, "pci-"))) {
-- attribs->busid = XNFstrdup(str);
-+ if (value && !strncmp(value, "pci-", 4)) {
-+ attribs->busid = XNFstrdup(value);
- attribs->busid[3] = ':';
- }
-
---
-cgit v1.2.1
-
-From af4c84ce8855e84c0ad89b929bc972e884f0b8e3 Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan at redhat.com>
-Date: Tue, 8 Sep 2020 10:03:33 +0200
-Subject: Revert "linux: Make platform device probe less fragile"
-
-This reverts commit 74b7427c41b4e4104af7abf70a996c086d3d7628.
-
-https://gitlab.freedesktop.org/xorg/xserver/-/issues/1068
----
- config/udev.c | 17 +++++------------
- hw/xfree86/os-support/linux/lnx_platform.c | 20 ++++++++++++++++++--
- 2 files changed, 23 insertions(+), 14 deletions(-)
-
-diff --git a/config/udev.c b/config/udev.c
-index 8c6c4b666..3a73189e2 100644
---- a/config/udev.c
-+++ b/config/udev.c
-@@ -56,7 +56,7 @@ static struct udev_monitor *udev_monitor;
-
- #ifdef CONFIG_UDEV_KMS
- static void
--config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path, const char *syspath,
-+config_udev_odev_setup_attribs(const char *path, const char *syspath,
- int major, int minor,
- config_odev_probe_proc_ptr probe_callback);
- #endif
-@@ -128,7 +128,7 @@ device_added(struct udev_device *udev_device)
-
- LogMessage(X_INFO, "config/udev: Adding drm device (%s)\n", path);
-
-- config_udev_odev_setup_attribs(udev_device, path, syspath, major(devnum),
-+ config_udev_odev_setup_attribs(path, syspath, major(devnum),
- minor(devnum), NewGPUDeviceRequest);
- return;
- }
-@@ -322,7 +322,7 @@ device_removed(struct udev_device *device)
-
- LogMessage(X_INFO, "config/udev: removing GPU device %s %s\n",
- syspath, path);
-- config_udev_odev_setup_attribs(device, path, syspath, major(devnum),
-+ config_udev_odev_setup_attribs(path, syspath, major(devnum),
- minor(devnum), DeleteGPUDeviceRequest);
- /* Retry vtenter after a drm node removal */
- systemd_logind_vtenter();
-@@ -465,24 +465,17 @@ config_udev_fini(void)
- #ifdef CONFIG_UDEV_KMS
-
- static void
--config_udev_odev_setup_attribs(struct udev_device *udev_device, const char *path, const char *syspath,
-+config_udev_odev_setup_attribs(const char *path, const char *syspath,
- int major, int minor,
- config_odev_probe_proc_ptr probe_callback)
- {
- struct OdevAttributes *attribs = config_odev_allocate_attributes();
-- const char *value;
-
- attribs->path = XNFstrdup(path);
- attribs->syspath = XNFstrdup(syspath);
- attribs->major = major;
- attribs->minor = minor;
-
-- value = udev_device_get_property_value(udev_device, "ID_PATH");
-- if (value && !strncmp(value, "pci-", 4)) {
-- attribs->busid = XNFstrdup(value);
-- attribs->busid[3] = ':';
-- }
--
- /* ownership of attribs is passed to probe layer */
- probe_callback(attribs);
- }
-@@ -523,7 +516,7 @@ config_udev_odev_probe(config_odev_probe_proc_ptr probe_callback)
- else if (!check_seat(udev_device))
- goto no_probe;
-
-- config_udev_odev_setup_attribs(udev_device, path, syspath, major(devnum),
-+ config_udev_odev_setup_attribs(path, syspath, major(devnum),
- minor(devnum), probe_callback);
- no_probe:
- udev_device_unref(udev_device);
-diff --git a/hw/xfree86/os-support/linux/lnx_platform.c b/hw/xfree86/os-support/linux/lnx_platform.c
-index e62306219..70374ace8 100644
---- a/hw/xfree86/os-support/linux/lnx_platform.c
-+++ b/hw/xfree86/os-support/linux/lnx_platform.c
-@@ -23,13 +23,13 @@
- static Bool
- get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index)
- {
-+ drmSetVersion sv;
- drmVersionPtr v;
-+ char *buf;
- int fd;
- int err = 0;
- Bool paused, server_fd = FALSE;
-
-- LogMessage(X_INFO, "Platform probe for %s\n", attribs->syspath);
--
- fd = systemd_logind_take_fd(attribs->major, attribs->minor, path, &paused);
- if (fd != -1) {
- if (paused) {
-@@ -48,6 +48,18 @@ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index)
- if (fd == -1)
- return FALSE;
-
-+ sv.drm_di_major = 1;
-+ sv.drm_di_minor = 4;
-+ sv.drm_dd_major = -1; /* Don't care */
-+ sv.drm_dd_minor = -1; /* Don't care */
-+
-+ err = drmSetInterfaceVersion(fd, &sv);
-+ if (err) {
-+ xf86Msg(X_ERROR, "%s: failed to set DRM interface version 1.4: %s\n",
-+ path, strerror(-err));
-+ goto out;
-+ }
-+
- /* for a delayed probe we've already added the device */
- if (delayed_index == -1) {
- xf86_add_platform_device(attribs, FALSE);
-@@ -57,6 +69,10 @@ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index)
- if (server_fd)
- xf86_platform_devices[delayed_index].flags |= XF86_PDEV_SERVER_FD;
-
-+ buf = drmGetBusid(fd);
-+ xf86_platform_odev_attributes(delayed_index)->busid = XNFstrdup(buf);
-+ drmFreeBusid(buf);
-+
- v = drmGetVersion(fd);
- if (!v) {
- xf86Msg(X_ERROR, "%s: failed to query DRM version\n", path);
---
-cgit v1.2.1
-
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/xorg-xserver-server.git/commitdiff/3ccb0d89a65bbe0a8237aa8b2472be8b577f315a
More information about the pld-cvs-commit
mailing list