diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | sshfs.1.in | 3 | ||||
-rw-r--r-- | sshfs.c | 6 |
4 files changed, 14 insertions, 2 deletions
@@ -1,3 +1,9 @@ +2012-05-14 Miklos Szeredi <miklos@szeredi.hu> + + * When checking root directory use LSTAT not STAT. This prevents + I/O error being returned after a successful mount if a symlink is + mounted. Reported by Bart Friederichs + 2012-03-08 Miklos Szeredi <miklos@szeredi.hu> * Released 2.4 diff --git a/configure.ac b/configure.ac index b2556f2..8089111 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,4 @@ AC_INIT(sshfs-fuse, 2.4) -AC_CANONICAL_TARGET AM_INIT_AUTOMAKE AM_CONFIG_HEADER(config.h) @@ -153,6 +153,9 @@ directly connect to PORT bypassing ssh \fB\-o\fR slave communicate over stdin and stdout bypassing network .TP +\fB\-o\fR slave +communicate over stdin and stdout bypassing network +.TP \fB\-o\fR transform_symlinks transform absolute symlinks to relative .TP @@ -1697,7 +1697,7 @@ static int sftp_check_root(const char *base_path) buf_init(&buf, 0); buf_add_string(&buf, remote_dir); buf_to_iov(&buf, &iov[0]); - if (sftp_send_iov(SSH_FXP_STAT, id, iov, 1) == -1) + if (sftp_send_iov(SSH_FXP_LSTAT, id, iov, 1) == -1) goto out; buf_clear(&buf); if (sftp_read(&type, &buf) == -1) @@ -4019,6 +4019,10 @@ int main(int argc, char *argv[]) exit(1); } + /* + * FIXME: trim $PATH so it doesn't contain anything inside the + * mountpoint, which would deadlock. + */ res = ssh_connect(); if (res == -1) { fuse_unmount(mountpoint, ch); |