diff options
author | Mart Raudsepp <leio@gentoo.org> | 2018-04-14 22:15:50 +0300 |
---|---|---|
committer | Mart Raudsepp <leio@gentoo.org> | 2018-04-14 22:16:04 +0300 |
commit | 63261207cee6515e48676d60757afd9655a49ad6 (patch) | |
tree | f1a05f5f7da0607820712f6c76c341d644db4cd3 /app-text | |
parent | dev-java/commons-math: Drop old (diff) | |
download | gentoo-63261207cee6515e48676d60757afd9655a49ad6.tar.gz gentoo-63261207cee6515e48676d60757afd9655a49ad6.tar.bz2 gentoo-63261207cee6515e48676d60757afd9655a49ad6.zip |
app-text/evince: Fix CVE-2017-1000159
Bug: https://bugs.gentoo.org/650272
Package-Manager: Portage-2.3.28, Repoman-2.3.9
Diffstat (limited to 'app-text')
-rw-r--r-- | app-text/evince/evince-3.24.2-r1.ebuild | 102 | ||||
-rw-r--r-- | app-text/evince/files/3.24.2-CVE-2017-1000159.patch | 42 |
2 files changed, 144 insertions, 0 deletions
diff --git a/app-text/evince/evince-3.24.2-r1.ebuild b/app-text/evince/evince-3.24.2-r1.ebuild new file mode 100644 index 000000000000..5377658d1a80 --- /dev/null +++ b/app-text/evince/evince-3.24.2-r1.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GNOME2_LA_PUNT="yes" + +inherit gnome2 systemd + +DESCRIPTION="Simple document viewer for GNOME" +HOMEPAGE="https://wiki.gnome.org/Apps/Evince" + +LICENSE="GPL-2+ CC-BY-SA-3.0" +# subslot = evd3.(suffix of libevdocument3)-evv3.(suffix of libevview3) +SLOT="0/evd3.4-evv3.3" +IUSE="djvu dvi gstreamer gnome gnome-keyring +introspection nautilus nsplugin +postscript t1lib tiff xps" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-solaris" + +# atk used in libview +# gdk-pixbuf used all over the place +COMMON_DEPEND=" + dev-libs/atk + >=dev-libs/glib-2.36:2[dbus] + >=dev-libs/libxml2-2.5:2 + sys-libs/zlib:= + x11-libs/gdk-pixbuf:2 + >=x11-libs/gtk+-3.16.0:3[introspection?] + gnome-base/gsettings-desktop-schemas + >=x11-libs/cairo-1.10:= + >=app-text/poppler-0.33[cairo] + djvu? ( >=app-text/djvu-3.5.22:= ) + dvi? ( + virtual/tex-base + dev-libs/kpathsea:= + t1lib? ( >=media-libs/t1lib-5:= ) ) + gstreamer? ( + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + media-libs/gst-plugins-good:1.0 ) + gnome? ( gnome-base/gnome-desktop:3= ) + gnome-keyring? ( >=app-crypt/libsecret-0.5 ) + introspection? ( >=dev-libs/gobject-introspection-1:= ) + nautilus? ( >=gnome-base/nautilus-2.91.4[introspection?] ) + postscript? ( >=app-text/libspectre-0.2:= ) + tiff? ( >=media-libs/tiff-3.6:0= ) + xps? ( >=app-text/libgxps-0.2.1:= ) +" +RDEPEND="${COMMON_DEPEND} + gnome-base/gvfs + gnome-base/librsvg + || ( + >=x11-themes/adwaita-icon-theme-2.17.1 + >=x11-themes/hicolor-icon-theme-0.10 ) +" +DEPEND="${COMMON_DEPEND} + app-text/docbook-xml-dtd:4.3 + app-text/yelp-tools + dev-util/gdbus-codegen + >=dev-util/gtk-doc-am-1.13 + >=dev-util/intltool-0.35 + dev-util/itstool + sys-devel/gettext + virtual/pkgconfig +" +# eautoreconf needs: +# app-text/yelp-tools + +PATCHES=( + "${FILESDIR}"/${PV}-CVE-2017-1000159.patch +) + +src_prepare() { + gnome2_src_prepare + + # Do not depend on adwaita-icon-theme, bug #326855, #391859 + # https://bugs.freedesktop.org/show_bug.cgi?id=29942 + sed -e 's/adwaita-icon-theme >= $ADWAITA_ICON_THEME_REQUIRED//g' \ + -i configure || die "sed failed" +} + +src_configure() { + gnome2_src_configure \ + --disable-static \ + --enable-pdf \ + --enable-comics \ + --enable-thumbnailer \ + --with-platform=gnome \ + --enable-dbus \ + $(use_enable djvu) \ + $(use_enable dvi) \ + $(use_enable gstreamer multimedia) \ + $(use_enable gnome libgnome-desktop) \ + $(use_with gnome-keyring keyring) \ + $(use_enable introspection) \ + $(use_enable nautilus) \ + $(use_enable nsplugin browser-plugin) \ + $(use_enable postscript ps) \ + $(use_enable t1lib) \ + $(use_enable tiff) \ + $(use_enable xps) \ + BROWSER_PLUGIN_DIR="${EPREFIX}"/usr/$(get_libdir)/nsbrowser/plugins \ + --with-systemduserunitdir="$(systemd_get_userunitdir)" +} diff --git a/app-text/evince/files/3.24.2-CVE-2017-1000159.patch b/app-text/evince/files/3.24.2-CVE-2017-1000159.patch new file mode 100644 index 000000000000..80861fdc4dea --- /dev/null +++ b/app-text/evince/files/3.24.2-CVE-2017-1000159.patch @@ -0,0 +1,42 @@ +From 350404c76dc8601e2cdd2636490e2afc83d3090e Mon Sep 17 00:00:00 2001 +From: Tobias Mueller <muelli@cryptobitch.de> +Date: Fri, 14 Jul 2017 12:52:14 +0200 +Subject: [PATCH] dvi: Mitigate command injection attacks by quoting filename + +With commit 1fcca0b8041de0d6074d7e17fba174da36c65f99 came a DVI backend. +It exports to PDF via the dvipdfm tool. +It calls that tool with the filename of the currently loaded document. +If that filename is cleverly crafted, it can escape the currently +used manual quoting of the filename. Instead of manually quoting the +filename, we use g_shell_quote. + +https://bugzilla.gnome.org/show_bug.cgi?id=784947 +--- + backend/dvi/dvi-document.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/backend/dvi/dvi-document.c b/backend/dvi/dvi-document.c +index 4a896e21..28877700 100644 +--- a/backend/dvi/dvi-document.c ++++ b/backend/dvi/dvi-document.c +@@ -300,12 +300,14 @@ dvi_document_file_exporter_end (EvFileExporter *exporter) + gboolean success; + + DviDocument *dvi_document = DVI_DOCUMENT(exporter); ++ gchar* quoted_filename = g_shell_quote (dvi_document->context->filename); + +- command_line = g_strdup_printf ("dvipdfm %s -o %s \"%s\"", /* dvipdfm -s 1,2,.., -o exporter_filename dvi_filename */ ++ command_line = g_strdup_printf ("dvipdfm %s -o %s %s", /* dvipdfm -s 1,2,.., -o exporter_filename dvi_filename */ + dvi_document->exporter_opts->str, + dvi_document->exporter_filename, +- dvi_document->context->filename); +- ++ quoted_filename); ++ g_free (quoted_filename); ++ + success = g_spawn_command_line_sync (command_line, + NULL, + NULL, +-- +2.17.0 + |