diff options
author | Joakim Sindholt <opensource@zhasha.com> | 2024-03-18 12:22:31 +0100 |
---|---|---|
committer | Eric Van Hensbergen <ericvh@kernel.org> | 2024-03-28 13:59:23 +0000 |
commit | cd25e15e57e68a6b18dc9323047fe9c68b99290b (patch) | |
tree | 53784baf6b0f0f48e9835586426e37a89f4a761c /fs/9p | |
parent | 8d025e2092e29bfd13e56c78e22af25fac83c8ec (diff) |
fs/9p: only translate RWX permissions for plain 9P2000
Garbage in plain 9P2000's perm bits is allowed through, which causes it
to be able to set (among others) the suid bit. This was presumably not
the intent since the unix extended bits are handled explicitly and
conditionally on .u.
Signed-off-by: Joakim Sindholt <opensource@zhasha.com>
Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
Diffstat (limited to 'fs/9p')
-rw-r--r-- | fs/9p/vfs_inode.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index b01b1bbf2493..9612fdb563a3 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c @@ -83,7 +83,7 @@ static int p9mode2perm(struct v9fs_session_info *v9ses, int res; int mode = stat->mode; - res = mode & S_IALLUGO; + res = mode & 0777; /* S_IRWXUGO */ if (v9fs_proto_dotu(v9ses)) { if ((mode & P9_DMSETUID) == P9_DMSETUID) res |= S_ISUID; |