summaryrefslogtreecommitdiff
path: root/block/elevator.c
diff options
context:
space:
mode:
authorAlexei Starovoitov <ast@kernel.org>2018-09-04 19:13:44 -0700
committerAlexei Starovoitov <ast@kernel.org>2018-09-05 22:21:00 -0700
commita9c676bc8fc58d00eea9836fb14ee43c0346416a (patch)
treef95baffc3d052a68d5ff23e2f1145ff1f6fefc9f /block/elevator.c
parent69495d2a52957c415d11312fe37844062a48fd32 (diff)
downloadlinux-next-a9c676bc8fc58d00eea9836fb14ee43c0346416a.tar.gz
bpf/verifier: fix verifier instability
Edward Cree says: In check_mem_access(), for the PTR_TO_CTX case, after check_ctx_access() has supplied a reg_type, the other members of the register state are set appropriately. Previously reg.range was set to 0, but as it is in a union with reg.map_ptr, which is larger, upper bytes of the latter were left in place. This then caused the memcmp() in regsafe() to fail, preventing some branches from being pruned (and occasionally causing the same program to take a varying number of processed insns on repeated verifier runs). Fix the instability by clearing bpf_reg_state in __mark_reg_[un]known() Fixes: f1174f77b50c ("bpf/verifier: rework value tracking") Debugged-by: Edward Cree <ecree@solarflare.com> Acked-by: Edward Cree <ecree@solarflare.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'block/elevator.c')
0 files changed, 0 insertions, 0 deletions