seccomp, bpf: disable preemption before calling into bpf prog
All BPF programs must be called with preemption disabled.
Fixes: 568f196756
("bpf: check that BPF programs run with preemption disabled")
Reported-by: syzbot+8bf19ee2aa580de7a2a7@syzkaller.appspotmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
74e31ca850
commit
e80d02dd76
@ -267,6 +267,7 @@ static u32 seccomp_run_filters(const struct seccomp_data *sd,
|
|||||||
* All filters in the list are evaluated and the lowest BPF return
|
* All filters in the list are evaluated and the lowest BPF return
|
||||||
* value always takes priority (ignoring the DATA).
|
* value always takes priority (ignoring the DATA).
|
||||||
*/
|
*/
|
||||||
|
preempt_disable();
|
||||||
for (; f; f = f->prev) {
|
for (; f; f = f->prev) {
|
||||||
u32 cur_ret = BPF_PROG_RUN(f->prog, sd);
|
u32 cur_ret = BPF_PROG_RUN(f->prog, sd);
|
||||||
|
|
||||||
@ -275,6 +276,7 @@ static u32 seccomp_run_filters(const struct seccomp_data *sd,
|
|||||||
*match = f;
|
*match = f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
preempt_enable();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SECCOMP_FILTER */
|
#endif /* CONFIG_SECCOMP_FILTER */
|
||||||
|
Loading…
Reference in New Issue
Block a user