parent
98efcc9777
commit
3111c34911
@ -1,55 +1,80 @@
|
|||||||
lib/mount_util.c | 23 +++++++++++++++++------
|
--- ntfs-3g_ntfsprogs-2015.3.14/libfuse-lite/mount_util.c.ref 2015-03-14 15:10:12.000000000 +0100
|
||||||
1 file changed, 17 insertions(+), 6 deletions(-)
|
+++ 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;
|
||||||
|
|
||||||
--- a/lib/mount_util.c
|
@@ -87,8 +88,8 @@
|
||||||
+++ b/lib/mount_util.c
|
exit(1);
|
||||||
@@ -97,10 +97,12 @@ static int add_mount(const char *prognam
|
}
|
||||||
goto out_restore;
|
rmdir(tmp);
|
||||||
}
|
- execl("/sbin/mount", "/sbin/mount", "-F", type, "-o", opts,
|
||||||
if (res == 0) {
|
- fsname, mnt, NULL);
|
||||||
+ char *env = 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());
|
||||||
setuid(geteuid());
|
- execl("/sbin/umount", "/sbin/umount", !lazy ? "-f" : NULL, mnt,
|
||||||
- execl("/bin/mount", "/bin/mount", "--no-canonicalize", "-i",
|
- NULL);
|
||||||
- "-f", "-t", type, "-o", opts, fsname, mnt, NULL);
|
+ if (lazy) {
|
||||||
+ execle("/bin/mount", "/bin/mount", "--no-canonicalize", "-i",
|
+ execle("/sbin/umount", "/sbin/umount", mnt,
|
||||||
+ "-f", "-t", type, "-o", opts, fsname, mnt, NULL, &env);
|
+ NULL, &env);
|
||||||
fprintf(stderr, "%s: failed to execute /bin/mount: %s\n",
|
+ } else {
|
||||||
progname, strerror(errno));
|
+ execle("/sbin/umount", "/sbin/umount", "-f", mnt,
|
||||||
exit(1);
|
+ NULL, &env);
|
||||||
@@ -148,10 +150,17 @@ static int exec_umount(const char *progn
|
+ }
|
||||||
goto out_restore;
|
fprintf(stderr, "%s: failed to execute /sbin/umount: %s\n", progname,
|
||||||
}
|
strerror(errno));
|
||||||
if (res == 0) {
|
exit(1);
|
||||||
+ char *env = NULL;
|
@@ -302,6 +310,7 @@
|
||||||
+
|
return 0;
|
||||||
sigprocmask(SIG_SETMASK, &oldmask, NULL);
|
}
|
||||||
setuid(geteuid());
|
if (res == 0) {
|
||||||
- execl("/bin/umount", "/bin/umount", "-i", rel_mnt,
|
+ char *env = NULL;
|
||||||
- lazy ? "-l" : NULL, NULL);
|
char templ[] = "/tmp/fusermountXXXXXX";
|
||||||
+ if (lazy) {
|
char *tmp;
|
||||||
+ execle("/bin/umount", "/bin/umount", "-i", rel_mnt,
|
|
||||||
+ "-l", NULL, &env);
|
@@ -325,8 +334,8 @@
|
||||||
+ } else {
|
exit(1);
|
||||||
+ execle("/bin/umount", "/bin/umount", "-i", rel_mnt,
|
}
|
||||||
+ NULL, &env);
|
rmdir(tmp);
|
||||||
+ }
|
- execl("/bin/mount", "/bin/mount", "-i", "-f", "-t", type, "-o", opts,
|
||||||
fprintf(stderr, "%s: failed to execute /bin/umount: %s\n",
|
- fsname, mnt, NULL);
|
||||||
progname, strerror(errno));
|
+ execle("/bin/mount", "/bin/mount", "-i", "-f", "-t", type, "-o", opts,
|
||||||
exit(1);
|
+ fsname, mnt, NULL, &env);
|
||||||
@@ -207,10 +216,12 @@ static int remove_mount(const char *prog
|
fprintf(stderr, "%s: failed to execute /bin/mount: %s\n", progname,
|
||||||
goto out_restore;
|
strerror(errno));
|
||||||
}
|
exit(1);
|
||||||
if (res == 0) {
|
@@ -353,11 +362,18 @@
|
||||||
+ char *env = NULL;
|
return -1;
|
||||||
|
}
|
||||||
|
if (res == 0) {
|
||||||
|
+ char *env = NULL;
|
||||||
+
|
+
|
||||||
sigprocmask(SIG_SETMASK, &oldmask, NULL);
|
if (setuid(geteuid()))
|
||||||
setuid(geteuid());
|
fprintf(stderr, "%s: failed to setuid : %s\n", progname,
|
||||||
- execl("/bin/umount", "/bin/umount", "--no-canonicalize", "-i",
|
strerror(errno));
|
||||||
- "--fake", mnt, NULL);
|
- execl("/bin/umount", "/bin/umount", "-i", mnt, lazy ? "-l" : NULL,
|
||||||
+ execle("/bin/umount", "/bin/umount", "--no-canonicalize", "-i",
|
- NULL);
|
||||||
+ "--fake", mnt, NULL, &env);
|
+ if (lazy) {
|
||||||
fprintf(stderr, "%s: failed to execute /bin/umount: %s\n",
|
+ execle("/bin/umount", "/bin/umount", "-i", mnt, "-l",
|
||||||
progname, strerror(errno));
|
+ NULL, &env);
|
||||||
exit(1);
|
+ } 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);
|
||||||
|
Loading…
Reference in new issue