commit:     63ab8f5018576fc957feef2f1cc35fc7aabd12df
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  1 22:35:58 2017 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Feb  1 22:36:29 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63ab8f50

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

 .../files/ntfs3g-2016.2.22-CVE-2017-0358.patch     | 40 ++++++++++
 sys-fs/ntfs3g/ntfs3g-2016.2.22-r2.ebuild           | 91 ++++++++++++++++++++++
 2 files changed, 131 insertions(+)

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 00000000..1ce7e9c
--- /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 00000000..65d95f8
--- /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
+}

Reply via email to