summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-04-25 11:56:51 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-04-25 11:56:51 +0000
commit0b5d8bad4b7b860f55937ab1b4f3418233876d11 (patch)
tree35020bd16a67075cfe5aa21ebb8bbcfa040d24f0
parent5e6e2787c3d9c3541f1a80cdd94ca8c99f950a25 (diff)
downloadaports-0b5d8bad4b7b860f55937ab1b4f3418233876d11.tar.bz2
aports-0b5d8bad4b7b860f55937ab1b4f3418233876d11.tar.xz
main/xorg-server: security fix (CVE-2013-1940)
fixes #1795
-rw-r--r--main/xorg-server/APKBUILD6
-rw-r--r--main/xorg-server/CVE-2013-1940.patch35
2 files changed, 39 insertions, 2 deletions
diff --git a/main/xorg-server/APKBUILD b/main/xorg-server/APKBUILD
index fc9957724..13e24c144 100644
--- a/main/xorg-server/APKBUILD
+++ b/main/xorg-server/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xorg-server
pkgver=1.12.1
-pkgrel=1
+pkgrel=2
pkgdesc="X.Org X servers"
url="http://xorg.freedesktop.org"
arch="all"
@@ -62,6 +62,7 @@ makedepends="
source="http://xorg.freedesktop.org/releases/individual/xserver/$pkgname-$pkgver.tar.bz2
autoconfig-nvidia.patch
autoconfig-sis.patch
+ CVE-2013-1940.patch
"
depends_dev="pixman-dev libpciaccess-dev xproto randrproto renderproto
@@ -153,4 +154,5 @@ xephyr() {
md5sums="20e73b422bda6f0d1405af676983cc70 xorg-server-1.12.1.tar.bz2
ea4852dedbb89550f6bc113ca66348a2 autoconfig-nvidia.patch
-825ca99ea9348c66abdf2c479e0af485 autoconfig-sis.patch"
+825ca99ea9348c66abdf2c479e0af485 autoconfig-sis.patch
+0348536ea835918616727a1f261954f0 CVE-2013-1940.patch"
diff --git a/main/xorg-server/CVE-2013-1940.patch b/main/xorg-server/CVE-2013-1940.patch
new file mode 100644
index 000000000..4231fb815
--- /dev/null
+++ b/main/xorg-server/CVE-2013-1940.patch
@@ -0,0 +1,35 @@
+From 8039b6b7a31f6cf75fcbe4e472d8e9544808396c Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@gmail.com>
+Date: Wed, 10 Apr 2013 06:09:01 +0000
+Subject: xf86: fix flush input to work with Linux evdev devices.
+
+So when we VT switch back and attempt to flush the input devices,
+we don't succeed because evdev won't return part of an event,
+since we were only asking for 4 bytes, we'd only get -EINVAL back.
+
+This could later cause events to be flushed that we shouldn't have
+gotten.
+
+This is a fix for CVE-2013-1940.
+
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+(cherry picked from commit 6ca03b9161d33b1d2b55a3a1a913cf88deb2343f)
+---
+diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c
+index ab3757a..4d08c1e 100644
+--- a/hw/xfree86/os-support/shared/posix_tty.c
++++ b/hw/xfree86/os-support/shared/posix_tty.c
+@@ -421,7 +421,8 @@ xf86FlushInput(int fd)
+ {
+ fd_set fds;
+ struct timeval timeout;
+- char c[4];
++ /* this needs to be big enough to flush an evdev event. */
++ char c[256];
+
+ DebugF("FlushingSerial\n");
+ if (tcflush(fd, TCIFLUSH) == 0)
+--
+cgit v0.9.0.2-2-gbebe