]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/5.1.5/bpf-relax-inode-permission-check-for-retrieving-bpf-program.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 5.1.5 / bpf-relax-inode-permission-check-for-retrieving-bpf-program.patch
CommitLineData
13e4e7e6
GKH
1From e547ff3f803e779a3898f1f48447b29f43c54085 Mon Sep 17 00:00:00 2001
2From: Chenbo Feng <fengc@google.com>
3Date: Tue, 14 May 2019 19:42:57 -0700
4Subject: bpf: relax inode permission check for retrieving bpf program
5
6From: Chenbo Feng <fengc@google.com>
7
8commit e547ff3f803e779a3898f1f48447b29f43c54085 upstream.
9
10For iptable module to load a bpf program from a pinned location, it
11only retrieve a loaded program and cannot change the program content so
12requiring a write permission for it might not be necessary.
13Also when adding or removing an unrelated iptable rule, it might need to
14flush and reload the xt_bpf related rules as well and triggers the inode
15permission check. It might be better to remove the write premission
16check for the inode so we won't need to grant write access to all the
17processes that flush and restore iptables rules.
18
19Signed-off-by: Chenbo Feng <fengc@google.com>
20Signed-off-by: Alexei Starovoitov <ast@kernel.org>
21Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
22Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
23
24---
25 kernel/bpf/inode.c | 2 +-
26 1 file changed, 1 insertion(+), 1 deletion(-)
27
28--- a/kernel/bpf/inode.c
29+++ b/kernel/bpf/inode.c
30@@ -518,7 +518,7 @@ out:
31 static struct bpf_prog *__get_prog_inode(struct inode *inode, enum bpf_prog_type type)
32 {
33 struct bpf_prog *prog;
34- int ret = inode_permission(inode, MAY_READ | MAY_WRITE);
35+ int ret = inode_permission(inode, MAY_READ);
36 if (ret)
37 return ERR_PTR(ret);
38