spot pushed to ntfs-3g (master). "fix patch"
notifications at fedoraproject.org
notifications at fedoraproject.org
Fri May 22 20:11:51 UTC 2015
From 3111c349110ea71b221654bc2b62166a27a8a912 Mon Sep 17 00:00:00 2001
From: Tom Callaway <spot at fedoraproject.org>
Date: Fri, 22 May 2015 16:11:45 -0400
Subject: fix patch
diff --git a/CVE-2015-3202.patch b/CVE-2015-3202.patch
index 2bd930b..6e5cf08 100644
--- a/CVE-2015-3202.patch
+++ b/CVE-2015-3202.patch
@@ -1,55 +1,80 @@
- lib/mount_util.c | 23 +++++++++++++++++------
- 1 file changed, 17 insertions(+), 6 deletions(-)
-
---- a/lib/mount_util.c
-+++ b/lib/mount_util.c
-@@ -97,10 +97,12 @@ static int add_mount(const char *prognam
- goto out_restore;
- }
- if (res == 0) {
-+ char *env = NULL;
+--- ntfs-3g_ntfsprogs-2015.3.14/libfuse-lite/mount_util.c.ref 2015-03-14 15:10:12.000000000 +0100
++++ ntfs-3g_ntfsprogs-2015.3.14/libfuse-lite/mount_util.c 2015-05-18 11:02:50.330654300 +0200
+@@ -66,6 +66,7 @@
+ return -1;
+ }
+ if (res == 0) {
++ char *env = NULL;
+ char templ[] = "/tmp/fusermountXXXXXX";
+ char *tmp;
+
+@@ -87,8 +88,8 @@
+ exit(1);
+ }
+ rmdir(tmp);
+- execl("/sbin/mount", "/sbin/mount", "-F", type, "-o", opts,
+- fsname, mnt, NULL);
++ execle("/sbin/mount", "/sbin/mount", "-F", type, "-o", opts,
++ fsname, mnt, NULL, &env);
+ fprintf(stderr, "%s: failed to execute /sbin/mount: %s\n", progname,
+ strerror(errno));
+ exit(1);
+@@ -120,9 +121,16 @@
+ return -1;
+ }
+ if (res == 0) {
++ char *env = NULL;
+
- sigprocmask(SIG_SETMASK, &oldmask, NULL);
- setuid(geteuid());
-- execl("/bin/mount", "/bin/mount", "--no-canonicalize", "-i",
-- "-f", "-t", type, "-o", opts, fsname, mnt, NULL);
-+ execle("/bin/mount", "/bin/mount", "--no-canonicalize", "-i",
-+ "-f", "-t", type, "-o", opts, fsname, mnt, NULL, &env);
- fprintf(stderr, "%s: failed to execute /bin/mount: %s\n",
- progname, strerror(errno));
- exit(1);
-@@ -148,10 +150,17 @@ static int exec_umount(const char *progn
- goto out_restore;
- }
- if (res == 0) {
-+ char *env = NULL;
+ setuid(geteuid());
+- execl("/sbin/umount", "/sbin/umount", !lazy ? "-f" : NULL, mnt,
+- NULL);
++ if (lazy) {
++ execle("/sbin/umount", "/sbin/umount", mnt,
++ NULL, &env);
++ } else {
++ execle("/sbin/umount", "/sbin/umount", "-f", mnt,
++ NULL, &env);
++ }
+ fprintf(stderr, "%s: failed to execute /sbin/umount: %s\n", progname,
+ strerror(errno));
+ exit(1);
+@@ -302,6 +310,7 @@
+ return 0;
+ }
+ if (res == 0) {
++ char *env = NULL;
+ char templ[] = "/tmp/fusermountXXXXXX";
+ char *tmp;
+
+@@ -325,8 +334,8 @@
+ exit(1);
+ }
+ rmdir(tmp);
+- execl("/bin/mount", "/bin/mount", "-i", "-f", "-t", type, "-o", opts,
+- fsname, mnt, NULL);
++ execle("/bin/mount", "/bin/mount", "-i", "-f", "-t", type, "-o", opts,
++ fsname, mnt, NULL, &env);
+ fprintf(stderr, "%s: failed to execute /bin/mount: %s\n", progname,
+ strerror(errno));
+ exit(1);
+@@ -353,11 +362,18 @@
+ return -1;
+ }
+ if (res == 0) {
++ char *env = NULL;
+
- sigprocmask(SIG_SETMASK, &oldmask, NULL);
- setuid(geteuid());
-- execl("/bin/umount", "/bin/umount", "-i", rel_mnt,
-- lazy ? "-l" : NULL, NULL);
-+ if (lazy) {
-+ execle("/bin/umount", "/bin/umount", "-i", rel_mnt,
-+ "-l", NULL, &env);
-+ } else {
-+ execle("/bin/umount", "/bin/umount", "-i", rel_mnt,
-+ NULL, &env);
-+ }
- fprintf(stderr, "%s: failed to execute /bin/umount: %s\n",
- progname, strerror(errno));
- exit(1);
-@@ -207,10 +216,12 @@ static int remove_mount(const char *prog
- goto out_restore;
- }
- if (res == 0) {
-+ char *env = NULL;
-+
- sigprocmask(SIG_SETMASK, &oldmask, NULL);
- setuid(geteuid());
-- execl("/bin/umount", "/bin/umount", "--no-canonicalize", "-i",
-- "--fake", mnt, NULL);
-+ execle("/bin/umount", "/bin/umount", "--no-canonicalize", "-i",
-+ "--fake", mnt, NULL, &env);
- fprintf(stderr, "%s: failed to execute /bin/umount: %s\n",
- progname, strerror(errno));
- exit(1);
\ No newline at end of file
+ if (setuid(geteuid()))
+ fprintf(stderr, "%s: failed to setuid : %s\n", progname,
+ strerror(errno));
+- execl("/bin/umount", "/bin/umount", "-i", mnt, lazy ? "-l" : NULL,
+- NULL);
++ if (lazy) {
++ execle("/bin/umount", "/bin/umount", "-i", mnt, "-l",
++ NULL, &env);
++ } else {
++ execle("/bin/umount", "/bin/umount", "-i", mnt,
++ NULL, &env);
++ }
+ fprintf(stderr, "%s: failed to execute /bin/umount: %s\n", progname,
+ strerror(errno));
+ exit(1);
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/ntfs-3g.git/commit/?h=master&id=3111c349110ea71b221654bc2b62166a27a8a912
More information about the scm-commits
mailing list