mirror of
https://github.com/libfuse/libfuse.git
synced 2024-11-26 21:54:30 +08:00
* Released 2.8.3
* Using --no-canonicalize with umount(8) conflicts with the race fix, sinceit assumes the supplied path is absolute, while the race fix relies on the path being relative to the current directory
This commit is contained in:
parent
054635595a
commit
0197ce4041
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2010-02-01 Miklos Szeredi <miklos@szeredi.hu>
|
||||
|
||||
* Released 2.8.3
|
||||
|
||||
2010-02-01 Miklos Szeredi <miklos@szeredi.hu>
|
||||
|
||||
* Using "--no-canonicalize" with umount(8) conflicts with the race
|
||||
fix, sinceit assumes the supplied path is absolute, while the race
|
||||
fix relies on the path being relative to the current directory
|
||||
|
||||
2010-01-26 Miklos Szeredi <miklos@szeredi.hu>
|
||||
|
||||
* Released 2.8.2
|
||||
|
@ -1,4 +1,4 @@
|
||||
AC_INIT(fuse, 2.8.2)
|
||||
AC_INIT(fuse, 2.8.3)
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CANONICAL_TARGET
|
||||
AM_INIT_AUTOMAKE
|
||||
|
@ -35,7 +35,7 @@ libfuse_la_SOURCES = \
|
||||
$(iconv_source) \
|
||||
$(mount_source)
|
||||
|
||||
libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:8:2 \
|
||||
libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:8:3 \
|
||||
-Wl,--version-script,$(srcdir)/fuse_versionscript
|
||||
|
||||
libulockmgr_la_SOURCES = ulockmgr.c
|
||||
|
@ -190,7 +190,6 @@ static int exec_umount(const char *progname, const char *rel_mnt, int lazy)
|
||||
int status;
|
||||
sigset_t blockmask;
|
||||
sigset_t oldmask;
|
||||
int legacy = 0;
|
||||
|
||||
sigemptyset(&blockmask);
|
||||
sigaddset(&blockmask, SIGCHLD);
|
||||
@ -200,32 +199,16 @@ static int exec_umount(const char *progname, const char *rel_mnt, int lazy)
|
||||
return -1;
|
||||
}
|
||||
|
||||
retry_umount:
|
||||
res = fork();
|
||||
if (res == -1) {
|
||||
fprintf(stderr, "%s: fork: %s\n", progname, strerror(errno));
|
||||
goto out_restore;
|
||||
}
|
||||
if (res == 0) {
|
||||
/*
|
||||
* Hide output, because old versions don't support
|
||||
* --no-canonicalize
|
||||
*/
|
||||
if (!legacy) {
|
||||
int fd = open("/dev/null", O_RDONLY);
|
||||
dup2(fd, 1);
|
||||
dup2(fd, 2);
|
||||
}
|
||||
|
||||
sigprocmask(SIG_SETMASK, &oldmask, NULL);
|
||||
setuid(geteuid());
|
||||
if (legacy) {
|
||||
execl("/bin/umount", "/bin/umount", "-i", rel_mnt,
|
||||
lazy ? "-l" : NULL, NULL);
|
||||
} else {
|
||||
execl("/bin/umount", "/bin/umount", "--no-canonicalize",
|
||||
"-i", rel_mnt, lazy ? "-l" : NULL, NULL);
|
||||
}
|
||||
execl("/bin/umount", "/bin/umount", "-i", rel_mnt,
|
||||
lazy ? "-l" : NULL, NULL);
|
||||
fprintf(stderr, "%s: failed to execute /bin/umount: %s\n",
|
||||
progname, strerror(errno));
|
||||
exit(1);
|
||||
@ -235,10 +218,6 @@ retry_umount:
|
||||
fprintf(stderr, "%s: waitpid: %s\n", progname, strerror(errno));
|
||||
|
||||
if (status != 0) {
|
||||
if (!legacy) {
|
||||
legacy = 1;
|
||||
goto retry_umount;
|
||||
}
|
||||
res = -1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user