summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick McLean <chutzpah@gentoo.org>2017-02-01 14:35:58 -0800
committerPatrick McLean <chutzpah@gentoo.org>2017-02-01 14:36:29 -0800
commit63ab8f5018576fc957feef2f1cc35fc7aabd12df (patch)
treef3dd6720a15c40dc7c0aedd51fc7af774b590750 /sys-fs/ntfs3g
parentmedia-libs/gd: Stable for HPPA (bug #607718). (diff)
downloadgentoo-63ab8f5018576fc957feef2f1cc35fc7aabd12df.tar.gz
gentoo-63ab8f5018576fc957feef2f1cc35fc7aabd12df.tar.bz2
gentoo-63ab8f5018576fc957feef2f1cc35fc7aabd12df.zip
sys-fs/ntfs3g: Revision bump to 2016.2.22-r2 to add patch for CVE-2017-0358
Gentoo-Bug: 607912 Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'sys-fs/ntfs3g')
-rw-r--r--sys-fs/ntfs3g/files/ntfs3g-2016.2.22-CVE-2017-0358.patch40
-rw-r--r--sys-fs/ntfs3g/ntfs3g-2016.2.22-r2.ebuild91
2 files changed, 131 insertions, 0 deletions
diff --git a/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-CVE-2017-0358.patch b/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-CVE-2017-0358.patch
new file mode 100644
index 000000000000..1ce7e9cdae32
--- /dev/null
+++ b/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-CVE-2017-0358.patch
@@ -0,0 +1,40 @@
+diff --git a/src/lowntfs-3g.c b/src/lowntfs-3g.c
+index 0bb38f97..c6d1dad3 100644
+--- a/src/lowntfs-3g.c
++++ b/src/lowntfs-3g.c
+@@ -3827,13 +3827,14 @@ static fuse_fstype load_fuse_module(void)
+ struct stat st;
+ pid_t pid;
+ const char *cmd = "/sbin/modprobe";
++ char *env = (char*)NULL;
+ struct timespec req = { 0, 100000000 }; /* 100 msec */
+ fuse_fstype fstype;
+
+ if (!stat(cmd, &st) && !geteuid()) {
+ pid = fork();
+ if (!pid) {
+- execl(cmd, cmd, "fuse", NULL);
++ execle(cmd, cmd, "fuse", NULL, &env);
+ _exit(1);
+ } else if (pid != -1)
+ waitpid(pid, NULL, 0);
+diff --git a/src/ntfs-3g.c b/src/ntfs-3g.c
+index 268b0569..945fc0be 100644
+--- a/src/ntfs-3g.c
++++ b/src/ntfs-3g.c
+@@ -3612,13 +3612,14 @@ static fuse_fstype load_fuse_module(void)
+ struct stat st;
+ pid_t pid;
+ const char *cmd = "/sbin/modprobe";
++ char *env = (char*)NULL;
+ struct timespec req = { 0, 100000000 }; /* 100 msec */
+ fuse_fstype fstype;
+
+ if (!stat(cmd, &st) && !geteuid()) {
+ pid = fork();
+ if (!pid) {
+- execl(cmd, cmd, "fuse", NULL);
++ execle(cmd, cmd, "fuse", NULL, &env);
+ _exit(1);
+ } else if (pid != -1)
+ waitpid(pid, NULL, 0);
diff --git a/sys-fs/ntfs3g/ntfs3g-2016.2.22-r2.ebuild b/sys-fs/ntfs3g/ntfs3g-2016.2.22-r2.ebuild
new file mode 100644
index 000000000000..65d95f8fc978
--- /dev/null
+++ b/sys-fs/ntfs3g/ntfs3g-2016.2.22-r2.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils linux-info udev toolchain-funcs libtool
+
+MY_PN=${PN/3g/-3g}
+MY_P=${MY_PN}_ntfsprogs-${PV}
+
+DESCRIPTION="Open source read-write NTFS driver that runs under FUSE"
+HOMEPAGE="http://www.tuxera.com/community/ntfs-3g-download/"
+SRC_URI="http://tuxera.com/opensource/${MY_P}.tgz"
+
+LICENSE="GPL-2"
+# The subslot matches the SONAME major #.
+SLOT="0/87"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="acl debug +external-fuse ntfsdecrypt +ntfsprogs static-libs suid xattr"
+
+RDEPEND="!<sys-apps/util-linux-2.20.1-r2
+ !sys-fs/ntfsprogs
+ ntfsdecrypt? (
+ >=dev-libs/libgcrypt-1.2.2:0
+ >=net-libs/gnutls-1.4.4
+ )
+ external-fuse? ( >=sys-fs/fuse-2.8.0 )"
+DEPEND="${RDEPEND}
+ sys-apps/attr
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS="AUTHORS ChangeLog CREDITS README"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2014.2.15-no-split-usr.patch
+ "${FILESDIR}"/${PN}-2016.2.22-sysmacros.patch #580136
+ "${FILESDIR}"/${PN}-2016.2.22-CVE-2017-0358.patch #607912
+)
+
+pkg_setup() {
+ if use external-fuse && use kernel_linux; then
+ if kernel_is lt 2 6 9; then
+ die "Your kernel is too old."
+ fi
+ CONFIG_CHECK="~FUSE_FS"
+ FUSE_FS_WARNING="You need to have FUSE module built to use ntfs-3g"
+ linux-info_pkg_setup
+ fi
+}
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+ # Keep the symlinks in the same place we put the main binaries.
+ # Having them in / when all the progs are in /usr is pointless.
+ sed -i \
+ -e 's:/sbin:$(sbindir):g' \
+ {ntfsprogs,src}/Makefile.in || die #578336
+ # Note: patches apply to Makefile.in, so don't run autotools here.
+ elibtoolize
+}
+
+src_configure() {
+ tc-ld-disable-gold
+ econf \
+ --prefix="${EPREFIX}"/usr \
+ --exec-prefix="${EPREFIX}"/usr \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ $(use_enable debug) \
+ --enable-ldscript \
+ --disable-ldconfig \
+ $(use_enable acl posix-acls) \
+ $(use_enable xattr xattr-mappings) \
+ $(use_enable ntfsdecrypt crypto) \
+ $(use_enable ntfsprogs) \
+ $(use_enable ntfsprogs quarantined) \
+ --without-uuid \
+ --enable-extras \
+ $(use_enable static-libs static) \
+ --with-fuse=$(usex external-fuse external internal)
+}
+
+src_install() {
+ default
+
+ use suid && fperms u+s /usr/bin/${MY_PN}
+ udev_dorules "${FILESDIR}"/99-ntfs3g.rules
+ prune_libtool_files
+
+ dosym mount.ntfs-3g /usr/sbin/mount.ntfs #374197
+}