summaryrefslogtreecommitdiff
path: root/libre/xorg-server
diff options
context:
space:
mode:
authorOmar Vega Ramos <ovruni@gnu.org.pe>2015-10-31 09:06:17 -0500
committerOmar Vega Ramos <ovruni@gnu.org.pe>2015-10-31 09:06:17 -0500
commit782a566cf8257b98263ae6d768368d29a716a869 (patch)
tree48ef1fce11cc8d73bbcc83b00e810994f3f66698 /libre/xorg-server
parent2e476540186fc8efac90f47d8ade4ba01256606c (diff)
downloadabslibre-782a566cf8257b98263ae6d768368d29a716a869.tar.gz
abslibre-782a566cf8257b98263ae6d768368d29a716a869.tar.bz2
abslibre-782a566cf8257b98263ae6d768368d29a716a869.zip
xorg-server-1.17.4-1.parabola1: updating version
Diffstat (limited to 'libre/xorg-server')
-rw-r--r--libre/xorg-server/0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch63
-rw-r--r--libre/xorg-server/PKGBUILD13
2 files changed, 4 insertions, 72 deletions
diff --git a/libre/xorg-server/0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch b/libre/xorg-server/0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch
deleted file mode 100644
index b3a7d2ed5..000000000
--- a/libre/xorg-server/0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 7cc7ffd25d5e50b54cb942d07d4cb160f20ff9c5 Mon Sep 17 00:00:00 2001
-From: Martin Peres <martin.peres@linux.intel.com>
-Date: Fri, 17 Jul 2015 17:21:26 +0300
-Subject: [PATCH] os: make sure the clientsWritable fd_set is initialized
- before use
-
-In WaitForSomething(), the fd_set clientsWritable may be used unitialized when
-the boolean AnyClientsWriteBlocked is set in the WakeupHandler(). This leads to
-a crash in FlushAllOutput() after x11proto's commit
-2c94cdb453bc641246cc8b9a876da9799bee1ce7.
-
-The problem did not manifest before because both the XFD_SIZE and the maximum
-number of clients were set to 256. As the connectionTranslation table was
-initalized for the 256 clients to 0, the test on the index not being 0 was
-aborting before dereferencing the client #0.
-
-As of commit 2c94cdb453bc641246cc8b9a876da9799bee1ce7 in x11proto, the XFD_SIZE
-got bumped to 512. This lead the OutputPending fd_set to have any fd above 256
-to be uninitialized which in turns lead to reading an index after the end of
-the ConnectionTranslation table. This index would then be used to find the
-client corresponding to the fd marked as pending writes and would also result
-to an out-of-bound access which would usually be the fatal one.
-
-Fix this by zeroing the clientsWritable fd_set at the beginning of
-WaitForSomething(). In this case, the bottom part of the loop, which would
-indirectly call FlushAllOutput, will not do any work but the next call to
-select will result in the execution of the right codepath. This is exactly what
-we want because we need to know the writable clients before handling them. In
-the end, it also makes sure that the fds above MaxClient are initialized,
-preventing the crash in FlushAllOutput().
-
-Thanks to everyone involved in tracking this one down!
-
-Reported-by: Karol Herbst <freedesktop@karolherbst.de>
-Reported-by: Tobias Klausmann <tobias.klausmann@mni.thm.de>
-Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
-Tested-by: Martin Peres <martin.peres@linux.intel.com>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91316
-Cc: Ilia Mirkin <imirkin@alum.mit.edu>
-Cc: Martin Peres <martin.peres@linux.intel.com>
-Cc: Olivier Fourdan <ofourdan@redhat.com
-Cc: Adam Jackson <ajax@redhat.com>
-Cc: Alan Coopersmith <alan.coopersmith@oracle.com
-Cc: Chris Wilson <chris@chris-wilson.co.uk>
----
- os/WaitFor.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/os/WaitFor.c b/os/WaitFor.c
-index 431f1a6..993c14e 100644
---- a/os/WaitFor.c
-+++ b/os/WaitFor.c
-@@ -158,6 +158,7 @@ WaitForSomething(int *pClientsReady)
- Bool someReady = FALSE;
-
- FD_ZERO(&clientsReadable);
-+ FD_ZERO(&clientsWritable);
-
- if (nready)
- SmartScheduleStopTimer();
---
-2.4.5
-
diff --git a/libre/xorg-server/PKGBUILD b/libre/xorg-server/PKGBUILD
index 16735acd3..8dad3bd73 100644
--- a/libre/xorg-server/PKGBUILD
+++ b/libre/xorg-server/PKGBUILD
@@ -5,7 +5,7 @@
pkgbase=xorg-server
pkgname=('xorg-server')
-pkgver=1.17.3
+pkgver=1.17.4
pkgrel=1.parabola1
arch=('i686' 'x86_64' 'armv7h')
license=('custom')
@@ -22,19 +22,17 @@ source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2{,.sig}
xvfb-run.1
0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch
0002-dix-hook-up-the-unaccelerated-valuator-masks.patch
- 0001-systemd-logind-do-not-rely-on-directed-signals.patch
- 0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch)
+ 0001-systemd-logind-do-not-rely-on-directed-signals.patch)
validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3')
-sha256sums=('89b5c6b7e7ec4731645283d2178f607825b75a470e76b3ad3cb1c1dbd2456b73'
+sha256sums=('0c4b45c116a812a996eb432d8508cf26c2ec8c3916ff2a50781796882f8d6457'
'SKIP'
'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
'3dc795002b8763a7d29db94f0af200131da9ce5ffc233bfd8916060f83a8fad7'
'416a1422eed71efcebb1d893de74e7f27e408323a56c4df003db37f5673b3f96'
- '3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c'
- 'efc05c06af2bfdf588ef7a60b44c1d180fb353b1bffdfdf96415d63690b6e394')
+ '3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c')
prepare() {
cd "${pkgbase}-${pkgver}"
@@ -45,9 +43,6 @@ prepare() {
# fix VT switching with kdbus; from upstream
patch -Np1 -i ../0001-systemd-logind-do-not-rely-on-directed-signals.patch
- # fix FS#45009, merged upstream
- patch -Np1 -i ../0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch
-
# fix os name:
#Build Operating System = OSNAME="--kernel-name --kernel-release --machine" OSVENDOR=""
#Current Operating System = --kernel-name --nodename --kernel-release --kernel-version --machine