diff options
author | DrDaveD <2129743+DrDaveD@users.noreply.github.com> | 2019-03-31 03:57:21 -0500 |
---|---|---|
committer | Nikolaus Rath <Nikolaus@rath.org> | 2019-03-31 04:57:21 -0400 |
commit | 1dbc89f95909672d01e1decb349a31373ed029bc (patch) | |
tree | 00cfe2bb360c21b25db6401837a32271db9e5f3e | |
parent | d299217510330fb5fb85a28f5f1d9eae732be2db (diff) | |
download | sshfs-1dbc89f95909672d01e1decb349a31373ed029bc.tar sshfs-1dbc89f95909672d01e1decb349a31373ed029bc.tar.gz sshfs-1dbc89f95909672d01e1decb349a31373ed029bc.tar.bz2 sshfs-1dbc89f95909672d01e1decb349a31373ed029bc.zip |
allow /dev/fd/N as a mountpoint (#166)
-rw-r--r-- | sshfs.c | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -3471,7 +3471,19 @@ static int sshfs_opt_proc(void *data, const char *arg, int key, } } #else - sshfs.mountpoint = realpath(arg, NULL); + int fd, len; + if (sscanf(arg, "/dev/fd/%u%n", &fd, &len) == 1 && + len == strlen(arg)) { + /* + * Allow /dev/fd/N unchanged; it can be + * use for pre-mounting a generic fuse + * mountpoint to later be completely + * unprivileged with libfuse >= 3.3.0. + */ + sshfs.mountpoint = arg; + } else { + sshfs.mountpoint = realpath(arg, NULL); + } #endif if (!sshfs.mountpoint) { fprintf(stderr, "sshfs: bad mount point `%s': %s\n", |