I've fixed "sshfs -o idmap=user", please test and give feedback:
https://marc.info/?l=openbsd-tech&m=146383589632694&w=2
Index: fuse_opt.c
===================================================================
RCS file: /home/cvs/src/lib/libfuse/fuse_opt.c,v
retrieving revision 1.15
diff -u -p -r1.15 fuse_opt.c
--- fuse_opt.c 19 Oct 2015 17:24:07 -0000 1.15
+++ fuse_opt.c 21 May 2016 12:53:57 -0000
@@ -247,13 +247,14 @@ parse_opt(const struct fuse_opt *o, cons
ret = f(data, &val[idx], o->val, arg);
else
ret = f(data, val, o->val, arg);
- }
-
- if (o->off != ULONG_MAX && data && o->val >= 0) {
- ret = f(data, val, o->val, arg);
- int *addr = (int *)(data + o->off);
- *addr = o->val;
- ret = 0;
+ /* exact match, e.g. "idmap=user" (instead of
"idmap=%s") */
+ } else if (keyval && strcmp(val, o->templ) == 0) {
+ if (data && o->val >= 0) {
+ ret = f(data, val, o->val, arg);
+ int *addr = (int *)(data + o->off);
+ *addr = o->val;
+ ret = 0;
+ }
}
if (ret == -1)