diff options
author | Nicola Girardi <nicola@aloc.in> | 2019-07-22 18:39:56 +0000 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2020-01-13 16:56:57 -0500 |
commit | 93f9789c048d9bfd75192adce3ed9a3ff8a68fbc (patch) | |
tree | 3631bc275afe9f51dbee9e7c58105e10176a0d88 /src/cmd/9pfuse | |
parent | ac6456a0cc67ca33c7b9c64cf7a4598961de8911 (diff) | |
download | plan9port-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/cmd/9pfuse')
-rw-r--r-- | src/cmd/9pfuse/main.c | 13 |
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; } |