summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-12-10 11:55:04 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-12-10 11:55:04 +0000
commit16d7c0a74e4764576c1b282ecdb8c24252cde500 (patch)
tree4ec798cba02fb79297ec332d195d31f21d0df7b0
parent566611d3e3628132fcee094bd2a9358b2f431c22 (diff)
downloadfuse_2_0_bugfix.tar.gz
-rw-r--r--ChangeLog5
-rw-r--r--util/fusermount.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 27aff18..7ecd861 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-12-10 Miklos Szeredi <miklos@szeredi.hu>
+
+ * When mounting on a subdirectory of / don't duplicate slashes at
+ the beggining of path (spotted by David Shaw)
+
2004-12-09 Miklos Szeredi <miklos@szeredi.hu>
* Fix bug causing garbage in mount options (spotted by David Shaw)
diff --git a/util/fusermount.c b/util/fusermount.c
index 44cca17..1b15d3e 100644
--- a/util/fusermount.c
+++ b/util/fusermount.c
@@ -780,8 +780,13 @@ static char *resolve_path(const char *orig)
dst = strdup(buf);
else {
dst = (char *) malloc(strlen(buf) + 1 + strlen(lastcomp) + 1);
- if (dst)
- sprintf(dst, "%s/%s", buf, lastcomp);
+ if (dst) {
+ unsigned buflen = strlen(buf);
+ if (buflen && buf[buflen-1] == '/')
+ sprintf(dst, "%s%s", buf, lastcomp);
+ else
+ sprintf(dst, "%s/%s", buf, lastcomp);
+ }
}
free(copy);
if (dst == NULL)