summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2020-04-22 00:18:39 -0400
committerMike Gilbert <floppym@gentoo.org>2020-04-22 00:18:39 -0400
commit46fe392026d1cf6fb21c54a418fcb20b4861f1e7 (patch)
tree1e8a642a9bc9709f6f5f93b15fcacda3d110962c
parentdev-python/python-engineio: drop vulnerable version 2.2.0 (diff)
downloadgentoo-46fe392026d1cf6fb21c54a418fcb20b4861f1e7.tar.gz
gentoo-46fe392026d1cf6fb21c54a418fcb20b4861f1e7.tar.bz2
gentoo-46fe392026d1cf6fb21c54a418fcb20b4861f1e7.zip
sys-fs/ntfs3g: apply fix for CVE-2019-9755
Bug: https://bugs.gentoo.org/717640 Signed-off-by: Mike Gilbert <floppym@gentoo.org>
-rw-r--r--sys-fs/ntfs3g/files/CVE-2019-9755.patch63
-rw-r--r--sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild106
2 files changed, 169 insertions, 0 deletions
diff --git a/sys-fs/ntfs3g/files/CVE-2019-9755.patch b/sys-fs/ntfs3g/files/CVE-2019-9755.patch
new file mode 100644
index 000000000000..caa079d607ba
--- /dev/null
+++ b/sys-fs/ntfs3g/files/CVE-2019-9755.patch
@@ -0,0 +1,63 @@
+From 85c1634a26faa572d3c558d4cf8aaaca5202d4e9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jean-Pierre=20Andr=C3=A9?= <jean-pierre.andre@wanadoo.fr>
+Date: Wed, 19 Dec 2018 15:57:50 +0100
+Subject: [PATCH] Fixed reporting an error when failed to build the mountpoint
+
+The size check was inefficient because getcwd() uses an unsigned int
+argument.
+---
+ src/lowntfs-3g.c | 6 +++++-
+ src/ntfs-3g.c | 6 +++++-
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/lowntfs-3g.c b/src/lowntfs-3g.c
+index 993867fa..0660439b 100644
+--- a/src/lowntfs-3g.c
++++ b/src/lowntfs-3g.c
+@@ -4411,7 +4411,8 @@ int main(int argc, char *argv[])
+ else {
+ ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX);
+ if (ctx->abs_mnt_point) {
+- if (getcwd(ctx->abs_mnt_point,
++ if ((strlen(opts.mnt_point) < PATH_MAX)
++ && getcwd(ctx->abs_mnt_point,
+ PATH_MAX - strlen(opts.mnt_point) - 1)) {
+ strcat(ctx->abs_mnt_point, "/");
+ strcat(ctx->abs_mnt_point, opts.mnt_point);
+@@ -4419,6 +4420,9 @@ int main(int argc, char *argv[])
+ /* Solaris also wants the absolute mount point */
+ opts.mnt_point = ctx->abs_mnt_point;
+ #endif /* defined(__sun) && defined (__SVR4) */
++ } else {
++ free(ctx->abs_mnt_point);
++ ctx->abs_mnt_point = (char*)NULL;
+ }
+ }
+ }
+diff --git a/src/ntfs-3g.c b/src/ntfs-3g.c
+index 6ce89fef..4e0912ae 100644
+--- a/src/ntfs-3g.c
++++ b/src/ntfs-3g.c
+@@ -4148,7 +4148,8 @@ int main(int argc, char *argv[])
+ else {
+ ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX);
+ if (ctx->abs_mnt_point) {
+- if (getcwd(ctx->abs_mnt_point,
++ if ((strlen(opts.mnt_point) < PATH_MAX)
++ && getcwd(ctx->abs_mnt_point,
+ PATH_MAX - strlen(opts.mnt_point) - 1)) {
+ strcat(ctx->abs_mnt_point, "/");
+ strcat(ctx->abs_mnt_point, opts.mnt_point);
+@@ -4156,6 +4157,9 @@ int main(int argc, char *argv[])
+ /* Solaris also wants the absolute mount point */
+ opts.mnt_point = ctx->abs_mnt_point;
+ #endif /* defined(__sun) && defined (__SVR4) */
++ } else {
++ free(ctx->abs_mnt_point);
++ ctx->abs_mnt_point = (char*)NULL;
+ }
+ }
+ }
+--
+2.26.1
+
diff --git a/sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild b/sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild
new file mode 100644
index 000000000000..a8b18bd3cc56
--- /dev/null
+++ b/sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit 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/88"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="acl debug +external-fuse ntfsdecrypt +ntfsprogs static-libs suid xattr"
+
+RDEPEND="
+ ntfsdecrypt? (
+ >=dev-libs/libgcrypt-1.2.2:0
+ >=net-libs/gnutls-1.4.4
+ )
+ external-fuse? (
+ >=sys-fs/fuse-2.8.0:0
+ )
+"
+DEPEND="${RDEPEND}
+ sys-apps/attr
+"
+BDEPEND="
+ 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
+ # Fedora fixes
+ "${FILESDIR}"/${PN}-2017.3.23-check-mftmirr.patch
+ "${FILESDIR}"/${PN}-2017.3.23-big-sectors.patch
+ "${FILESDIR}"/${PN}-2017.3.23-full-clusters.patch
+ "${FILESDIR}"/CVE-2019-9755.patch
+)
+
+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() {
+ default
+ # 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() {
+ # disable hd library until we have the right library in the tree and
+ # don't links to hwinfo one causing issues like bug #602360
+ tc-ld-disable-gold
+ # passing --exec-prefix is needed as the build system is trying to be clever
+ # and install itself into / instead of /usr in order to be compatible with
+ # separate-/usr setups (which we don't support without an initrd).
+ econf \
+ --exec-prefix="${EPREFIX}"/usr \
+ $(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 \
+ --without-hd \
+ --enable-extras \
+ $(use_enable static-libs static) \
+ --with-fuse=$(usex external-fuse external internal)
+}
+
+src_install() {
+ default
+
+ use suid && fperms u+s /usr/bin/ntfs-3g
+ # Not needed with the link of mount.ntfs being created, causes
+ # issues like bug #635080
+# udev_dorules "${FILESDIR}"/99-ntfs3g.rules
+ dosym mount.ntfs-3g /usr/sbin/mount.ntfs #374197
+
+ find "${D}" -name '*.la' -type f -delete || die
+}