summaryrefslogtreecommitdiff
authorChenbo Feng <fengc@google.com>2019-05-15 02:42:57 (GMT)
committer Maciej Żenczykowski <maze@google.com>2019-05-17 01:21:15 (GMT)
commit9e74c1b9e8418aa0209b15db24f0b3d4876f52aa (patch)
tree6a6bfcb596350c5199220dd3b99982ee64c751cb
parente6d81da784d9166a51fdc30bc3e88d8836eb74e8 (diff)
downloadcommon-9e74c1b9e8418aa0209b15db24f0b3d4876f52aa.zip
common-9e74c1b9e8418aa0209b15db24f0b3d4876f52aa.tar.gz
common-9e74c1b9e8418aa0209b15db24f0b3d4876f52aa.tar.bz2
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: Chenbo Feng <fengc@google.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> (cherry picked from commit e547ff3f803e779a3898f1f48447b29f43c54085) Bug: 129650054 Change-Id: I71487ad6f4d22e0a8be3757d9b72d1c04c92104d
Diffstat
-rw-r--r--kernel/bpf/inode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/bpf/inode.c b/kernel/bpf/inode.c
index 7e48fa6..002a0b9 100644
--- a/kernel/bpf/inode.c
+++ b/kernel/bpf/inode.c
@@ -325,7 +325,7 @@ out:
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);