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