projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
bpf/verifier: reject invalid LD_ABS | BPF_DW instruction
[firefly-linux-kernel-4.4.55.git]
/
kernel
/
bpf
/
verifier.c
diff --git
a/kernel/bpf/verifier.c
b/kernel/bpf/verifier.c
index 2e7f7ab739e41c46072a69e787bf4e44f560ae55..c21cb146086c5f89dc7a7ce7b40504bea73178b5 100644
(file)
--- a/
kernel/bpf/verifier.c
+++ b/
kernel/bpf/verifier.c
@@
-1348,6
+1348,7
@@
static int check_ld_abs(struct verifier_env *env, struct bpf_insn *insn)
}
if (insn->dst_reg != BPF_REG_0 || insn->off != 0 ||
+ BPF_SIZE(insn->code) == BPF_DW ||
(mode == BPF_ABS && insn->src_reg != BPF_REG_0)) {
verbose("BPF_LD_ABS uses reserved fields\n");
return -EINVAL;