aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2012-01-27 16:42:13 +0100
committerMiklos Szeredi <mszeredi@suse.cz>2012-01-27 16:42:33 +0100
commitfd4ffa53dff9c9a71bc322d2105cbc0559d597ad (patch)
tree111a129394fb8e74f1a31bccf0363a31a2ad59dc
parentb02843393f53482f9efa7ada2dca0996356833c3 (diff)
downloadandroid_external_fuse-fd4ffa53dff9c9a71bc322d2105cbc0559d597ad.tar.gz
android_external_fuse-fd4ffa53dff9c9a71bc322d2105cbc0559d597ad.tar.bz2
android_external_fuse-fd4ffa53dff9c9a71bc322d2105cbc0559d597ad.zip
Interpret octal escape codes in options
Requested by Jan Engelhardt
-rw-r--r--ChangeLog5
-rw-r--r--lib/fuse_opt.c16
2 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index a923872..e4ba255 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-01-27 Miklos Szeredi <miklos@szeredi.hu>
+
+ * Interpret octal escape codes in options. Requested by Jan
+ Engelhardt
+
2012-01-26 Miklos Szeredi <miklos@szeredi.hu>
* Add man pages for fusermount, mount.fuse and ulockmgr_server.
diff --git a/lib/fuse_opt.c b/lib/fuse_opt.c
index b912764..a2118ce 100644
--- a/lib/fuse_opt.c
+++ b/lib/fuse_opt.c
@@ -309,9 +309,21 @@ static int process_real_option_group(struct fuse_opt_context *ctx, char *opts)
return -1;
d = opts;
} else {
- if (s[0] == '\\' && s[1] != '\0')
+ if (s[0] == '\\' && s[1] != '\0') {
s++;
- *d++ = *s;
+ if (s[0] >= '0' && s[0] <= '3' &&
+ s[1] >= '0' && s[1] <= '7' &&
+ s[2] >= '0' && s[2] <= '7') {
+ *d++ = (s[0] - '0') * 0100 +
+ (s[1] - '0') * 0010 +
+ (s[2] - '0');
+ s += 2;
+ } else {
+ *d++ = *s;
+ }
+ } else {
+ *d++ = *s;
+ }
}
s++;
}