From 5a74d239bf45dfebbbb8363b309b56eec66e324f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 14 Mar 2015 16:29:56 +0100 Subject: pulseaudio: Update to 6.0; add dependency on eudev. * gnu/packages/pulseaudio.scm (pulseaudio)[source]: Update to 6.0. [arguments]: Pass --with-udev-rules-dir. [inputs]: Add eudev. --- .../patches/pulseaudio-CVE-2014-3970.patch | 57 ---------------------- gnu/packages/pulseaudio.scm | 15 +++--- 2 files changed, 9 insertions(+), 63 deletions(-) delete mode 100644 gnu/packages/patches/pulseaudio-CVE-2014-3970.patch (limited to 'gnu') diff --git a/gnu/packages/patches/pulseaudio-CVE-2014-3970.patch b/gnu/packages/patches/pulseaudio-CVE-2014-3970.patch deleted file mode 100644 index 073e663112..0000000000 --- a/gnu/packages/patches/pulseaudio-CVE-2014-3970.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 26b9d22dd24c17eb118d0205bf7b02b75d435e3c Mon Sep 17 00:00:00 2001 -From: "Alexander E. Patrakov" -Date: Thu, 5 Jun 2014 22:29:25 +0600 -Subject: [PATCH] rtp-recv: fix crash on empty UDP packets (CVE-2014-3970) - -On FIONREAD returning 0 bytes, we cannot return success, as the caller -(rtpoll_work_cb in module-rtp-recv.c) would then try to -pa_memblock_unref(chunk.memblock) and, because memblock is NULL, trigger -an assertion. - -Also we have to read out the possible empty packet from the socket, so -that the kernel doesn't tell us again and again about it. - -Signed-off-by: Alexander E. Patrakov ---- - src/modules/rtp/rtp.c | 25 +++++++++++++++++++++++-- - 1 file changed, 23 insertions(+), 2 deletions(-) - -diff --git a/src/modules/rtp/rtp.c b/src/modules/rtp/rtp.c -index 570737e..7b75e0e 100644 ---- a/src/modules/rtp/rtp.c -+++ b/src/modules/rtp/rtp.c -@@ -182,8 +182,29 @@ int pa_rtp_recv(pa_rtp_context *c, pa_memchunk *chunk, pa_mempool *pool, struct - goto fail; - } - -- if (size <= 0) -- return 0; -+ if (size <= 0) { -+ /* size can be 0 due to any of the following reasons: -+ * -+ * 1. Somebody sent us a perfectly valid zero-length UDP packet. -+ * 2. Somebody sent us a UDP packet with a bad CRC. -+ * -+ * It is unknown whether size can actually be less than zero. -+ * -+ * In the first case, the packet has to be read out, otherwise the -+ * kernel will tell us again and again about it, thus preventing -+ * reception of any further packets. So let's just read it out -+ * now and discard it later, when comparing the number of bytes -+ * received (0) with the number of bytes wanted (1, see below). -+ * -+ * In the second case, recvmsg() will fail, thus allowing us to -+ * return the error. -+ * -+ * Just to avoid passing zero-sized memchunks and NULL pointers to -+ * recvmsg(), let's force allocation of at least one byte by setting -+ * size to 1. -+ */ -+ size = 1; -+ } - - if (c->memchunk.length < (unsigned) size) { - size_t l; --- -2.0.0 - diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 1e9fe41b47..e915ea0e8c 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -112,7 +112,7 @@ rates. ") (define pulseaudio (package (name "pulseaudio") - (version "5.0") + (version "6.0") (source (origin (method url-fetch) (uri (string-append @@ -120,7 +120,7 @@ rates. ") version ".tar.xz")) (sha256 (base32 - "0fgrr8v7yfh0byhzdv4c87v9lkj8g7gpjm8r9xrbvpa92a5kmhcr")) + "1xpnfxa0d8pgf6b4qdgnkcvrvdxbbbjd5ync19h0f5hbp3h401mm")) (modules '((guix build utils))) (snippet ;; Disable console-kit support by default since it's deprecated @@ -128,12 +128,14 @@ rates. ") '(substitute* "src/daemon/default.pa.in" (("load-module module-console-kit" all) (string-append "#" all "\n")))) - (patches (list (search-patch "pulseaudio-fix-mult-test.patch") - (search-patch "pulseaudio-CVE-2014-3970.patch"))))) + (patches (list (search-patch "pulseaudio-fix-mult-test.patch"))))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--localstatedir=/var" ;"--sysconfdir=/etc" - "--disable-oss-output") + `(#:configure-flags (list "--localstatedir=/var" ;"--sysconfdir=/etc" + "--disable-oss-output" + (string-append "--with-udev-rules-dir=" + (assoc-ref %outputs "out") + "/lib/udev/rules.d")) #:phases (alist-cons-before 'check 'pre-check (lambda _ @@ -160,6 +162,7 @@ rates. ") ("libltdl" ,libltdl) ("fftwf" ,fftwf) ("avahi" ,avahi) + ("eudev" ,eudev) ;for the detection of hardware audio devices ("check" ,check))) (propagated-inputs ;; 'libpulse*.la' contain `-lgdbm' and `-lcap', so propagate them. -- cgit v1.2.3