diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2012-01-27 16:42:13 +0100 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2012-01-27 16:42:33 +0100 |
commit | fd4ffa53dff9c9a71bc322d2105cbc0559d597ad (patch) | |
tree | 111a129394fb8e74f1a31bccf0363a31a2ad59dc | |
parent | b02843393f53482f9efa7ada2dca0996356833c3 (diff) | |
download | android_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-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/fuse_opt.c | 16 |
2 files changed, 19 insertions, 2 deletions
@@ -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++; } |