Merge master into stdenv-updates

Conflicts (easy):
	pkgs/development/compilers/llvm/default.nix
	pkgs/development/compilers/openjdk/default.nix
	pkgs/development/libraries/icu/default.nix
	pkgs/development/libraries/libssh/default.nix
	pkgs/development/libraries/libxslt/default.nix
	pkgs/development/tools/parsing/bison/3.x.nix
This commit is contained in:
Vladimír Čunát
2013-12-28 23:28:30 +01:00
395 changed files with 5580 additions and 3281 deletions

View File

@@ -1,11 +1,11 @@
{ stdenv, fetchurl, flex, bison, readline }:
stdenv.mkDerivation rec {
name = "bird-1.3.11";
name = "bird-1.4.0";
src = fetchurl {
url = "ftp://bird.network.cz/pub/bird/${name}.tar.gz";
sha256 = "15c4d9cyd6l8jdlrvmzvwmpga81llm8zxqvbsir9gvwgzn6zbmna";
sha256 = "1ickqvzpnyycq4a0l4d0kvf25pvq2vjayc0whqfv1233nb5426ys";
};
buildInputs = [ flex bison readline ];

View File

@@ -1,13 +1,13 @@
{stdenv, fetchurl, unzip}:
stdenv.mkDerivation {
name = "jetty-6.1.21";
name = "jetty-6.1.26";
builder = ./bin-builder.sh;
buildInputs = [unzip];
src = fetchurl {
url = http://dist.codehaus.org/jetty/jetty-6.1.21/jetty-6.1.21.zip;
sha256 = "1nrjglrmf29m1j1c80nskngmlqmc5vc7c48fggczn605l722cwaw";
url = http://dist.codehaus.org/jetty/jetty-6.1.26/jetty-6.1.26.zip;
sha256 = "11w1ciayv8zvxjg45xzs0kwc7k45x97sbnxkqb62sxy3gsw8xh4n";
};
}

View File

@@ -1,13 +1,13 @@
{stdenv, fetchurl, openssl, pam, bzip2, zlib, inotifyTools, openldap}:
stdenv.mkDerivation rec {
name = "dovecot-2.1.8";
name = "dovecot-2.1.17";
buildInputs = [openssl pam bzip2 zlib inotifyTools openldap];
src = fetchurl {
url = "http://dovecot.org/releases/2.1/${name}.tar.gz";
sha256 = "03801f4agcwdpqyg6dfxlga3750pnhk4gaf8m7sjq1qmz2277028";
sha256 = "06j2s5bcrmc0dhjsyavqiss3k65p6xn00a7sffpsv6w3yngv777m";
};
# It will hardcode this for /var/lib/dovecot.

View File

@@ -5,11 +5,11 @@ assert enableJabber -> minmay != null;
let
version = "2.0.9";
version = "2.0.10";
src = fetchurl {
url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
sha256 = "057fjqww0qzs56nm8m3c36kbrhwriysvjvqzgwm9j2bg9ylixvym";
sha256 = "0p86m634j08w0gbr2rwqr3h5p6md7k0c688w5yxc1ii3l9fmnhbi";
};
preConfigure =

View File

@@ -2,11 +2,11 @@
let
version = "1.8.18rc1";
version = "1.8.19";
src = fetchurl {
url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
sha256 = "1pa4656dcl5r7r36nwk05zy38z49np6j717wjmmd8sqlz6szw01n";
sha256 = "0xgki1lrqyhfvx2691v8mk7a868zz35cnvrhiyqgksq2kshm11ph";
};
preConfigure =

View File

@@ -0,0 +1,36 @@
{ stdenv, fetchurl, which, protobuf, v8, ncurses, gperftools, boost, m4 }:
stdenv.mkDerivation rec {
name = "rethinkdb-1.11.2";
src = fetchurl {
url = "http://download.rethinkdb.com/dist/${name}.tgz";
sha256 = "04wz07y891vygc5ksrvkk1ch05xj16nahv20bnxwcllkbl4gf9lj";
};
preConfigure = ''
export ALLOW_WARNINGS=1
patchShebangs .
'';
configureFlags = "--lib-path ${gperftools}/lib";
buildInputs = [ protobuf v8 ncurses boost ];
nativeBuildInputs = [ which m4 ];
meta = {
description = "An open-source distributed database built with love";
longDescription = ''
RethinkDB is built to store JSON documents, and scale to multiple machines with very little
effort. It has a pleasant query language that supports really useful queries like table joins
and group by, and is easy to setup and learn.
'';
homepage = http://www.rethinkdb.com;
license = "AGPLv3";
maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@@ -30,10 +30,10 @@ rec {
};
squid32 = squid30.merge rec {
name = "squid-3.2.2";
name = "squid-3.2.13";
src = args.fetchurl {
url = "http://www.squid-cache.org/Versions/v3/3.2/${name}.tar.bz2";
sha256 = "13jlx3d6rqq7ajxs8bgn8a0mh932jhq6aa8032q205nxnhqs0l4l";
sha256 = "0dafqv00dr3nyrm9k47d6r7gv2r3f9hjd1ykl3kkvjca11r4n54j";
};
buildInputs = [openldap pam db4 cyrus_sasl libcap expat libxml2
libtool openssl];

View File

@@ -790,11 +790,11 @@ let
})) // {inherit libICE kbproto libSM libX11 xproto ;};
libXtst = (stdenv.mkDerivation ((if overrides ? libXtst then overrides.libXtst else x: x) {
name = "libXtst-1.2.1";
name = "libXtst-1.2.2";
builder = ./builder.sh;
src = fetchurl {
url = mirror://xorg/X11R7.7/src/everything/libXtst-1.2.1.tar.bz2;
sha256 = "1q750hjplq1rfyxkr4545z1y2a1wfnc828ynvbws7b4jwdk3xsky";
url = mirror://xorg/individual/lib/libXtst-1.2.2.tar.bz2;
sha256 = "1ngn161nq679ffmbwl81i2hn75jjg5b3ffv6n4jilpvyazypy2pg";
};
buildInputs = [pkgconfig inputproto recordproto libX11 libXext xextproto libXi ];
})) // {inherit inputproto recordproto libX11 libXext xextproto libXi ;};
@@ -1370,11 +1370,11 @@ let
})) // {inherit inputproto xorgserver xproto ;};
xf86inputsynaptics = (stdenv.mkDerivation ((if overrides ? xf86inputsynaptics then overrides.xf86inputsynaptics else x: x) {
name = "xf86-input-synaptics-1.6.2";
name = "xf86-input-synaptics-1.7.1";
builder = ./builder.sh;
src = fetchurl {
url = mirror://xorg/individual/driver/xf86-input-synaptics-1.6.2.tar.bz2;
sha256 = "082rlbyw63sashjbwd7dd0a0smp5n8yv9bihy19c706lhnhddxy3";
url = mirror://xorg/individual/driver/xf86-input-synaptics-1.7.1.tar.bz2;
sha256 = "13mmpcwp1d69w6c458a4fdqgwl24bpvrnq3zd6833chz1rk2an6v";
};
buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ];
})) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;};
@@ -1420,11 +1420,11 @@ let
})) // {inherit fontsproto libpciaccess xextproto xorgserver xproto ;};
xf86videoast = (stdenv.mkDerivation ((if overrides ? xf86videoast then overrides.xf86videoast else x: x) {
name = "xf86-video-ast-0.97.0";
name = "xf86-video-ast-0.98.0";
builder = ./builder.sh;
src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-ast-0.97.0.tar.bz2;
sha256 = "0xlfk64pa0vbg74m261fw8cn4vw6jw3nxm6wys9m4j3n2rwd9z18";
url = mirror://xorg/individual/driver/xf86-video-ast-0.98.0.tar.bz2;
sha256 = "188nv73w0p5xhfxz2dffli44yzyn1qhhq3qkwc8wva9dhg25n8lh";
};
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
@@ -1440,31 +1440,31 @@ let
})) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
xf86videocirrus = (stdenv.mkDerivation ((if overrides ? xf86videocirrus then overrides.xf86videocirrus else x: x) {
name = "xf86-video-cirrus-1.5.1";
name = "xf86-video-cirrus-1.5.2";
builder = ./builder.sh;
src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-cirrus-1.5.1.tar.bz2;
sha256 = "0my54x52fsa82bsh196hz79750xjlv8ddbvin7230ck7pnf44md9";
url = mirror://xorg/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2;
sha256 = "1mycqgjp18b6adqj2h90vp324xh8ysyi5migfmjc914vbnkf2q9k";
};
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
xf86videodummy = (stdenv.mkDerivation ((if overrides ? xf86videodummy then overrides.xf86videodummy else x: x) {
name = "xf86-video-dummy-0.3.6";
name = "xf86-video-dummy-0.3.7";
builder = ./builder.sh;
src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-dummy-0.3.6.tar.bz2;
sha256 = "16773lxa74d9v2x758bx0byrmxssplqygnjn09q3klr605j5ncs4";
url = mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2;
sha256 = "1046p64xap69vlsmsz5rjv0djc970yhvq44fmllmas0mqp5lzy2n";
};
buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ];
})) // {inherit fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;};
xf86videofbdev = (stdenv.mkDerivation ((if overrides ? xf86videofbdev then overrides.xf86videofbdev else x: x) {
name = "xf86-video-fbdev-0.4.3";
name = "xf86-video-fbdev-0.4.4";
builder = ./builder.sh;
src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2;
sha256 = "0ca8khgy3wv0fys7s4087apvnp8j86blxj5m5m70l10hs5x06yzz";
url = mirror://xorg/individual/driver/xf86-video-fbdev-0.4.4.tar.bz2;
sha256 = "06ym7yy017lanj730hfkpfk4znx3dsj8jq3qvyzsn8w294kb7m4x";
};
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;};
@@ -1540,14 +1540,14 @@ let
})) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
xf86videoneomagic = (stdenv.mkDerivation ((if overrides ? xf86videoneomagic then overrides.xf86videoneomagic else x: x) {
name = "xf86-video-neomagic-1.2.7";
name = "xf86-video-neomagic-1.2.8";
builder = ./builder.sh;
src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-neomagic-1.2.7.tar.bz2;
sha256 = "0xnbk2y5pzs1g3w2rmjc4k3nyq6kazf67bv4q3dnbywalsgfh1lz";
url = mirror://xorg/individual/driver/xf86-video-neomagic-1.2.8.tar.bz2;
sha256 = "0x48sxs1p3kmwk3pq1j7vl93y59gdmgkq1x5xbnh0yal0angdash";
};
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
buildInputs = [pkgconfig fontsproto libpciaccess xorgserver xproto ];
})) // {inherit fontsproto libpciaccess xorgserver xproto ;};
xf86videonewport = (stdenv.mkDerivation ((if overrides ? xf86videonewport then overrides.xf86videonewport else x: x) {
name = "xf86-video-newport-0.2.4";
@@ -1680,11 +1680,11 @@ let
})) // {inherit randrproto videoproto xorgserver xproto ;};
xf86videovesa = (stdenv.mkDerivation ((if overrides ? xf86videovesa then overrides.xf86videovesa else x: x) {
name = "xf86-video-vesa-2.3.2";
name = "xf86-video-vesa-2.3.3";
builder = ./builder.sh;
src = fetchurl {
url = mirror://xorg/individual/driver/xf86-video-vesa-2.3.2.tar.bz2;
sha256 = "1qqf97baii1dcsm3y8gqw674j4r8llhkbqsavhyn11iwmvzifjhl";
url = mirror://xorg/individual/driver/xf86-video-vesa-2.3.3.tar.bz2;
sha256 = "1y5fsg0c4bgmh1cfsbnaaf388fppyy02i7mcy9vax78flkjpb2yf";
};
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
})) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
@@ -1900,11 +1900,11 @@ let
})) // {inherit ;};
xorgserver = (stdenv.mkDerivation ((if overrides ? xorgserver then overrides.xorgserver else x: x) {
name = "xorg-server-1.13.4";
name = "xorg-server-1.14.5";
builder = ./builder.sh;
src = fetchurl {
url = mirror://xorg/individual/xserver/xorg-server-1.13.4.tar.bz2;
sha256 = "1kwq5hqgl3qmm4nxh5iwpa0wwwzsj67fxqiiglzhyyrwgy46kjd2";
url = mirror://xorg/individual/xserver/xorg-server-1.14.5.tar.bz2;
sha256 = "1lb1fkscy7nwnabfj0d2shvxga16i047g11if18plj0n2jzhc3wd";
};
buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ];
})) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ;};

View File

@@ -165,6 +165,13 @@ in
];
};
xf86videonv = attrs: attrs // {
patches = [( args.fetchurl {
url = http://cgit.freedesktop.org/xorg/driver/xf86-video-nv/patch/?id=fc78fe98222b0204b8a2872a529763d6fe5048da;
sha256 = "0ikbnz6048ygs1qahb6ylnxkyjhfjcqr2gm9bk95ca90v57j7i0f";
})];
};
xf86videovmware = attrs: attrs // {
buildInputs = attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker
};
@@ -198,11 +205,7 @@ in
"--with-default-font-path= " # there were only paths containing "${prefix}",
# and there are no fonts in this package anyway
];
patches =
[ ./xorgserver-dri-path.patch
./xorgserver-xkbcomp-path.patch
./xorgserver-cve-2013-4396.patch
];
patches = [ ./xorgserver-xkbcomp-path.patch ];
buildInputs = attrs.buildInputs ++ [ xtrans ];
propagatedBuildInputs =
[ args.zlib args.udev args.mesa args.dbus.libs

View File

@@ -77,7 +77,7 @@ mirror://xorg/individual/lib/libXrender-0.9.8.tar.bz2
mirror://xorg/individual/lib/libXres-1.0.7.tar.bz2
mirror://xorg/X11R7.7/src/everything/libXScrnSaver-1.2.2.tar.bz2
mirror://xorg/individual/lib/libXt-1.1.4.tar.bz2
mirror://xorg/X11R7.7/src/everything/libXtst-1.2.1.tar.bz2
mirror://xorg/individual/lib/libXtst-1.2.2.tar.bz2
mirror://xorg/individual/lib/libXv-1.0.8.tar.bz2
mirror://xorg/individual/lib/libXvMC-1.0.8.tar.bz2
mirror://xorg/individual/lib/libXxf86dga-1.1.4.tar.bz2
@@ -116,15 +116,15 @@ mirror://xorg/individual/driver/xf86-input-evdev-2.7.3.tar.bz2
mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-input-keyboard-1.6.1.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-input-mouse-1.7.2.tar.bz2
mirror://xorg/individual/driver/xf86-input-synaptics-1.6.2.tar.bz2
mirror://xorg/individual/driver/xf86-input-synaptics-1.7.1.tar.bz2
mirror://xorg/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
mirror://xorg/individual/driver/xf86-input-void-1.4.0.tar.bz2
mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
mirror://xorg/individual/driver/xf86-video-ast-0.97.0.tar.bz2
mirror://xorg/individual/driver/xf86-video-ast-0.98.0.tar.bz2
mirror://xorg/individual/driver/xf86-video-ati-7.1.0.tar.bz2
mirror://xorg/individual/driver/xf86-video-cirrus-1.5.1.tar.bz2
mirror://xorg/individual/driver/xf86-video-dummy-0.3.6.tar.bz2
mirror://xorg/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2
mirror://xorg/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2
mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2
mirror://xorg/individual/driver/xf86-video-fbdev-0.4.4.tar.bz2
mirror://xorg/individual/driver/xf86-video-geode-2.11.14.tar.bz2
mirror://xorg/individual/driver/xf86-video-glide-1.2.1.tar.bz2
mirror://xorg/individual/driver/xf86-video-glint-1.2.8.tar.bz2
@@ -132,7 +132,7 @@ mirror://xorg/individual/driver/xf86-video-i128-1.3.6.tar.bz2
mirror://xorg/individual/driver/xf86-video-intel-2.21.9.tar.bz2
mirror://xorg/individual/driver/xf86-video-mach64-6.9.4.tar.bz2
mirror://xorg/individual/driver/xf86-video-mga-1.6.2.tar.bz2
mirror://xorg/individual/driver/xf86-video-neomagic-1.2.7.tar.bz2
mirror://xorg/individual/driver/xf86-video-neomagic-1.2.8.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-video-newport-0.2.4.tar.bz2
mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2
mirror://xorg/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
@@ -146,7 +146,7 @@ mirror://xorg/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2
mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2
mirror://xorg/individual/driver/xf86-video-trident-1.3.6.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-video-v4l-0.2.0.tar.bz2
mirror://xorg/individual/driver/xf86-video-vesa-2.3.2.tar.bz2
mirror://xorg/individual/driver/xf86-video-vesa-2.3.3.tar.bz2
mirror://xorg/individual/driver/xf86-video-vmware-13.0.1.tar.bz2
mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2
mirror://xorg/X11R7.7/src/everything/xf86-video-wsfb-0.4.0.tar.bz2
@@ -164,7 +164,7 @@ mirror://xorg/X11R7.7/src/everything/xlsatoms-1.1.1.tar.bz2
mirror://xorg/X11R7.7/src/everything/xlsclients-1.1.2.tar.bz2
mirror://xorg/X11R7.7/src/everything/xmodmap-1.0.7.tar.bz2
mirror://xorg/X11R7.7/src/everything/xorg-docs-1.7.tar.bz2
mirror://xorg/individual/xserver/xorg-server-1.13.4.tar.bz2
mirror://xorg/individual/xserver/xorg-server-1.14.5.tar.bz2
mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2
mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2
mirror://xorg/X11R7.7/src/everything/xprop-1.2.1.tar.bz2

View File

@@ -1,75 +0,0 @@
From 7bddc2ba16a2a15773c2ea8947059afa27727764 Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon, 16 Sep 2013 21:47:16 -0700
Subject: [PATCH] Avoid use-after-free in dix/dixfonts.c: doImageText()
[CVE-2013-4396]
Save a pointer to the passed in closure structure before copying it
and overwriting the *c pointer to point to our copy instead of the
original. If we hit an error, once we free(c), reset c to point to
the original structure before jumping to the cleanup code that
references *c.
Since one of the errors being checked for is whether the server was
able to malloc(c->nChars * itemSize), the client can potentially pass
a number of characters chosen to cause the malloc to fail and the
error path to be taken, resulting in the read from freed memory.
Since the memory is accessed almost immediately afterwards, and the
X server is mostly single threaded, the odds of the free memory having
invalid contents are low with most malloc implementations when not using
memory debugging features, but some allocators will definitely overwrite
the memory there, leading to a likely crash.
Reported-by: Pedro Ribeiro <pedrib@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
---
dix/dixfonts.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index feb765d..2e34d37 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -1425,6 +1425,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
GC *pGC;
unsigned char *data;
ITclosurePtr new_closure;
+ ITclosurePtr old_closure;
/* We're putting the client to sleep. We need to
save some state. Similar problem to that handled
@@ -1436,12 +1437,14 @@ doImageText(ClientPtr client, ITclosurePtr c)
err = BadAlloc;
goto bail;
}
+ old_closure = c;
*new_closure = *c;
c = new_closure;
data = malloc(c->nChars * itemSize);
if (!data) {
free(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
@@ -1452,6 +1455,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
if (!pGC) {
free(c->data);
free(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
@@ -1464,6 +1468,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
FreeScratchGC(pGC);
free(c->data);
free(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
--
1.7.9.2

View File

@@ -1,19 +0,0 @@
diff -Naur xorg-server-1.12.2-orig/glx/glxdricommon.c xorg-server-1.12.2/glx/glxdricommon.c
--- xorg-server-1.12.2-orig/glx/glxdricommon.c 2012-05-17 13:09:02.000000000 -0400
+++ xorg-server-1.12.2/glx/glxdricommon.c 2012-07-14 14:57:37.972791909 -0400
@@ -219,10 +219,14 @@
int i;
void *driver;
char filename[PATH_MAX];
+ char *real_dri_driver_path;
const __DRIextension **extensions;
+ real_dri_driver_path = getenv("XORG_DRI_DRIVER_PATH");
+ if (!real_dri_driver_path) real_dri_driver_path = dri_driver_path;
+
snprintf(filename, sizeof filename, "%s/%s_dri.so",
- dri_driver_path, driverName);
+ real_dri_driver_path, driverName);
driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
if (driver == NULL) {

View File

@@ -1,34 +0,0 @@
From 6ca03b9161d33b1d2b55a3a1a913cf88deb2343f 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>
---
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