diff mbox series

[1/4] fs/9p: only translate RWX permissions for plain 9P2000

Message ID 20240315155329.61e33be0@eclair (mailing list archive)
State New
Headers show
Series [1/4] fs/9p: only translate RWX permissions for plain 9P2000 | expand

Commit Message

Joakim Sindholt March 15, 2024, 2:53 p.m. UTC
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.

From 2d9f6cc6b3163d4991aaa6d799c554edd07a6c0a Mon Sep 17 00:00:00 2001
From: Joakim Sindholt <opensource@zhasha.com>
Date: Fri, 15 Mar 2024 15:13:21 +0100
Subject: [PATCH 1/4] fs/9p: only translate RWX permissions for plain 9P2000

---
 fs/9p/vfs_inode.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index 32572982f72e..1180d1453a5a 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 & S_IRWXUGO;
 	if (v9fs_proto_dotu(v9ses)) {
 		if ((mode & P9_DMSETUID) == P9_DMSETUID)
 			res |= S_ISUID;