From fd4ffa53dff9c9a71bc322d2105cbc0559d597ad Mon Sep 17 00:00:00 2001
From: Miklos Szeredi <mszeredi@suse.cz>
Date: Fri, 27 Jan 2012 16:42:13 +0100
Subject: [PATCH] Interpret octal escape codes in options

Requested by Jan Engelhardt
---
 ChangeLog      |  5 +++++
 lib/fuse_opt.c | 16 ++++++++++++++--
 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++;
 	}
-- 
2.30.2