aboutsummaryrefslogtreecommitdiff
path: root/net/irda
diff options
context:
space:
mode:
authorDaniel Borkmann2016-12-07 01:15:44 +0100
committerDavid S. Miller2016-12-07 13:16:04 -0500
commitef0915cacd04c9e35be5f9d62a4e4b5b4b9bcfd1 (patch)
treeb3589bba5b7632cc8e763ce614bc5af35d58bc36 /net/irda
parent90364feaf70f251533feff3f228f82df9a9f52b6 (diff)
bpf: fix loading of BPF_MAXINSNS sized programs
General assumption is that single program can hold up to BPF_MAXINSNS, that is, 4096 number of instructions. It is the case with cBPF and that limit was carried over to eBPF. When recently testing digest, I noticed that it's actually not possible to feed 4096 instructions via bpf(2). The check for > BPF_MAXINSNS was added back then to bpf_check() in cbd357008604 ("bpf: verifier (add ability to receive verification log)"). However, 09756af46893 ("bpf: expand BPF syscall with program load/unload") added yet another check that comes before that into bpf_prog_load(), but this time bails out already in case of >= BPF_MAXINSNS. Fix it up and perform the check early in bpf_prog_load(), so we can drop the second one in bpf_check(). It makes sense, because also a 0 insn program is useless and we don't want to waste any resources doing work up to bpf_check() point. The existing bpf(2) man page documents E2BIG as the official error for such cases, so just stick with it as well. Fixes: 09756af46893 ("bpf: expand BPF syscall with program load/unload") Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/irda')
0 files changed, 0 insertions, 0 deletions