aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNicola Girardi <nicola@aloc.in>2019-07-22 18:39:56 +0000
committerRuss Cox <rsc@golang.org>2020-01-13 16:56:57 -0500
commit93f9789c048d9bfd75192adce3ed9a3ff8a68fbc (patch)
tree3631bc275afe9f51dbee9e7c58105e10176a0d88 /src
parentac6456a0cc67ca33c7b9c64cf7a4598961de8911 (diff)
downloadplan9port-93f9789c048d9bfd75192adce3ed9a3ff8a68fbc.tar.gz
plan9port-93f9789c048d9bfd75192adce3ed9a3ff8a68fbc.tar.bz2
plan9port-93f9789c048d9bfd75192adce3ed9a3ff8a68fbc.zip
cmd/9pfuse: ignore FMODE_EXEC open flag
Improved error message in case of unexpected open flags. The message unexpected open flags requested=0100040 unhandled=040 prompted me to clear the FMODE_EXEC flag, although I wonder if I shouldn't have set OEXEC (0x3) instead.
Diffstat (limited to 'src')
-rw-r--r--src/cmd/9pfuse/main.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/cmd/9pfuse/main.c b/src/cmd/9pfuse/main.c
index 0d4adb08..0df61002 100644
--- a/src/cmd/9pfuse/main.c
+++ b/src/cmd/9pfuse/main.c
@@ -51,6 +51,14 @@
# endif
#endif
+#ifndef FMODE_EXEC
+# if defined(__linux__)
+# define FMODE_EXEC 040
+# else
+# define FMODE_EXEC 0
+# endif
+#endif
+
int debug;
char *argv0;
char *aname = "";
@@ -583,7 +591,7 @@ _fuseopen(FuseMsg *m, int isdir)
flags = in->flags;
openmode = flags&3;
flags &= ~3;
- flags &= ~(O_DIRECTORY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC);
+ flags &= ~(O_DIRECTORY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|FMODE_EXEC);
#ifdef O_NOFOLLOW
flags &= ~O_NOFOLLOW;
#endif
@@ -602,13 +610,14 @@ _fuseopen(FuseMsg *m, int isdir)
openmode |= OTRUNC;
flags &= ~O_TRUNC;
}
+
/*
* Could translate but not standard 9P:
* O_DIRECT -> ODIRECT
* O_NONBLOCK -> ONONBLOCK
*/
if(flags){
- fprint(2, "unexpected open flags %#uo\n", (uint)in->flags);
+ fprint(2, "unexpected open flags requested=%#uo unhandled=%#uo\n", (uint)in->flags, (uint)flags);
replyfuseerrno(m, EACCES);
return;
}