UPSTREAM: bpf: Verifier, refine 32bit bound in do_refine_retval_range

Further refine return values range in do_refine_retval_range by noting
these are int return types (We will assume here that int is a 32-bit type).

Two reasons to pull this out of original patch. First it makes the original
fix impossible to backport. And second I've not seen this as being problematic
in practice unlike the other case.

Fixes: 849fa50662 ("bpf/verifier: refine retval R0 state for bpf_get_stack helper")
Change-Id: I8b24661c86780d11863744091472295c2ff924e5
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/158560421952.10843.12496354931526965046.stgit@john-Precision-5820-Tower
This commit is contained in:
John Fastabend 2020-03-30 14:36:59 -07:00 • committed by basamaryan
commit 246eaa7c8b
No known key found for this signature in database
GPG key ID: 210D5384FB2A5885

View file

@ -4372,6 +4372,7 @@ static void do_refine_retval_range(struct bpf_reg_state *regs, int ret_type,
return;
ret_reg->smax_value = meta->msize_max_value;
ret_reg->s32_max_value = meta->msize_max_value;
__reg_deduce_bounds(ret_reg);
__reg_bound_offset(ret_reg);
__update_reg_bounds(ret_reg);