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

Laurent Carlier lcarlier at archlinux.org
Sat Feb 21 13:38:48 UTC 2015


    Date: Saturday, February 21, 2015 @ 14:38:48
  Author: lcarlier
Revision: 231711

upgpkg: xorg-server 1.17.1-2

fix FS#43884, and partially FS#43867

Added:
  xorg-server/trunk/os-access-fix-regression-in-server-interpreted-auth.patch
  xorg-server/trunk/v2-xserver-Fix-a-crash-with-XDMCP-error-handler.patch
Modified:
  xorg-server/trunk/PKGBUILD

-----------------------------------------------------------+
 PKGBUILD                                                  |   18 ++++++-
 os-access-fix-regression-in-server-interpreted-auth.patch |   30 ++++++++++++
 v2-xserver-Fix-a-crash-with-XDMCP-error-handler.patch     |   23 +++++++++
 3 files changed, 68 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2015-02-21 03:04:37 UTC (rev 231710)
+++ PKGBUILD	2015-02-21 13:38:48 UTC (rev 231711)
@@ -5,7 +5,7 @@
 pkgbase=xorg-server
 pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-xwayland' 'xorg-server-common' 'xorg-server-devel')
 pkgver=1.17.1
-pkgrel=1 # build first with 0.1 and then rebuild it after xf86-input-evdev rebuild
+pkgrel=2 # build first with 0.1 and then rebuild it after xf86-input-evdev rebuild
 arch=('i686' 'x86_64')
 license=('custom')
 url="http://xorg.freedesktop.org"
@@ -19,7 +19,9 @@
 source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2{,.sig}
         nvidia-drm-outputclass.conf
         xvfb-run
-        xvfb-run.1)
+        xvfb-run.1
+        os-access-fix-regression-in-server-interpreted-auth.patch
+        v2-xserver-Fix-a-crash-with-XDMCP-error-handler.patch)
 validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
               'C383B778255613DFDB409D91DB221A6900000011')
 sha256sums=('2bf8e9f6f0a710dec1d2472467bff1f4e247cb6dcd76eb469aafdc8a2d7db2ab'
@@ -26,8 +28,18 @@
             'SKIP'
             'af1c3d2ea5de7f6a6b5f7c60951a189a4749d1495e5462f3157ae7ac8fe1dc56'
             'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
-            '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776')
+            '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
+            '8a9d76eecf8795ca645fb1ce261733965578e953f6606153ce001a0e15d036e8'
+            'a73e33644682d9f430db987c192da0f7193907af50539669ebd59614a5ebd0f9')
 
+prepare() {
+  cd "${pkgbase}-${pkgver}"
+  # fix FS#43884, not yet upstream
+  patch -Np1 -i ../os-access-fix-regression-in-server-interpreted-auth.patch
+  # partially fix FS#43867, not yet upstream
+  patch -Np1 -i ../v2-xserver-Fix-a-crash-with-XDMCP-error-handler.patch
+}
+
 build() {
   cd "${pkgbase}-${pkgver}"
   autoreconf -fi

Added: os-access-fix-regression-in-server-interpreted-auth.patch
===================================================================
--- os-access-fix-regression-in-server-interpreted-auth.patch	                        (rev 0)
+++ os-access-fix-regression-in-server-interpreted-auth.patch	2015-02-21 13:38:48 UTC (rev 231711)
@@ -0,0 +1,30 @@
+diff --git a/os/access.c b/os/access.c
+index 28f2d32..fe6e831 100644
+--- a/os/access.c
++++ b/os/access.c
+@@ -1390,14 +1390,23 @@ InvalidHost(register struct sockaddr *saddr, int len, ClientPtr client)
+         else
+             return 0;
+     }
++
++    /* An empty address requires both a NULL addr *and* a zero length
++     * as the address comparison functions call memcmp with both
++     * parameters. Make sure they agree here
++     */
++    if (addr == NULL)
++        len = 0;
++    if (len == 0)
++        addr = NULL;
+     for (host = validhosts; host; host = host->next) {
+         if (host->family == FamilyServerInterpreted) {
+-            if (addr && siAddrMatch(family, addr, len, host, client)) {
++            if (siAddrMatch(family, addr, len, host, client)) {
+                 return 0;
+             }
+         }
+         else {
+-            if (addr && addrEqual(family, addr, len, host))
++            if (addrEqual(family, addr, len, host))
+                 return 0;
+         }
+

Added: v2-xserver-Fix-a-crash-with-XDMCP-error-handler.patch
===================================================================
--- v2-xserver-Fix-a-crash-with-XDMCP-error-handler.patch	                        (rev 0)
+++ v2-xserver-Fix-a-crash-with-XDMCP-error-handler.patch	2015-02-21 13:38:48 UTC (rev 231711)
@@ -0,0 +1,23 @@
+diff --git a/os/xdmcp.c b/os/xdmcp.c
+index b6e97c9..0e9e625 100644
+--- a/os/xdmcp.c
++++ b/os/xdmcp.c
+@@ -1409,8 +1409,16 @@ recv_alive_msg(unsigned length)
+ static void
+ XdmcpFatal(const char *type, ARRAY8Ptr status)
+ {
+-    FatalError("XDMCP fatal error: %s %*.*s\n", type,
+-               status->length, status->length, status->data);
++    char *error_message;
++
++    /* error_message is leaked, but that's fine, we're aborting */
++    error_message = malloc (status->length + 1);
++    if (!error_message)
++        FatalError("XDMCP fatal error: %s", type);
++
++    memcpy(error_message, status->data, status->length);
++    error_message[status->length] = '\0';
++    FatalError("XDMCP fatal error: %s %s\n", type, error_message);
+ }
+ 
+ static void



More information about the arch-commits mailing list