proc: use generic setattr() for /proc/$PID/net
authorThomas Weißschuh <linux@weissschuh.net>
Sat, 24 Jun 2023 10:30:47 +0000 (12:30 +0200)
committerChristian Brauner <brauner@kernel.org>
Thu, 13 Jul 2023 11:55:14 +0000 (13:55 +0200)
All other files in /proc/$PID/ use proc_setattr().

Not using it allows the usage of chmod() on /proc/$PID/net, even on
other processes owned by the same user.
The same would probably also be true for other attributes to be changed.

As this technically represents an ABI change it is not marked for
stable so any unlikely regressions are caught during a full release cycle.

Fixes: e9720acd728a ("[NET]: Make /proc/net a symlink on /proc/self/net (v3)")
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/lkml/d0d111ef-edae-4760-83fb-36db84278da1@t-8ch.de/
Fixes: b4844fa0bdb4 ("selftests/nolibc: implement a few tests for various syscalls")
Tested-by: Zhangjin Wu <falcon@tinylab.org>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Message-Id: <20230624-proc-net-setattr-v1-2-73176812adee@weissschuh.net>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/proc/proc_net.c

index a0c0419872e3cc2245b9783307f9fec8f5345c1e..78f9e6b469c0ee0499247163066263ffcbb783bb 100644 (file)
@@ -321,6 +321,7 @@ static int proc_tgid_net_getattr(struct mnt_idmap *idmap,
 const struct inode_operations proc_net_inode_operations = {
        .lookup         = proc_tgid_net_lookup,
        .getattr        = proc_tgid_net_getattr,
+       .setattr        = proc_setattr,
 };
 
 static int proc_tgid_net_readdir(struct file *file, struct dir_context *ctx)