Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7764a126 authored by Chenbo Feng's avatar Chenbo Feng Committed by Maciej Żenczykowski
Browse files

UPSTREAM: bpf: relax inode permission check for retrieving bpf program



For iptable module to load a bpf program from a pinned location, it
only retrieve a loaded program and cannot change the program content so
requiring a write permission for it might not be necessary.
Also when adding or removing an unrelated iptable rule, it might need to
flush and reload the xt_bpf related rules as well and triggers the inode
permission check. It might be better to remove the write premission
check for the inode so we won't need to grant write access to all the
processes that flush and restore iptables rules.

Signed-off-by: default avatarChenbo Feng <fengc@google.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
(cherry picked from commit e547ff3f803e779a3898f1f48447b29f43c54085)

Bug: 129650054
Change-Id: I71487ad6f4d22e0a8be3757d9b72d1c04c92104d
(cherry picked from commit 9e74c1b9e8418aa0209b15db24f0b3d4876f52aa)
parent 12eaf12d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -518,7 +518,7 @@ int bpf_obj_get_user(const char __user *pathname, int flags)
static struct bpf_prog *__get_prog_inode(struct inode *inode, enum bpf_prog_type type)
{
	struct bpf_prog *prog;
	int ret = inode_permission(inode, MAY_READ | MAY_WRITE);
	int ret = inode_permission(inode, MAY_READ);
	if (ret)
		return ERR_PTR(ret);