[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