diff options
author | 2023-08-22 12:52:48 -0700 | |
---|---|---|
committer | 2023-08-22 12:52:48 -0700 | |
commit | 87680ac7979177a34ca39b5a35a2ed94209cd20f (patch) | |
tree | 646d352f0565c43db72aeba106b44ac474d604b2 /kernel | |
parent | selftests/bpf: Add a failure test for bpf_kptr_xchg() with local kptr (diff) | |
parent | selftests/bpf: Add test for bpf_obj_drop with bad reg->off (diff) | |
download | wireguard-linux-87680ac7979177a34ca39b5a35a2ed94209cd20f.tar.xz wireguard-linux-87680ac7979177a34ca39b5a35a2ed94209cd20f.zip |
Merge branch 'fix-for-check_func_arg_reg_off'
Kumar Kartikeya Dwivedi says:
====================
Fix for check_func_arg_reg_off
Remove a leftover hunk in check_func_arg_reg_off that incorrectly
bypasses reg->off == 0 requirement for release kfuncs and helpers.
====================
Link: https://lore.kernel.org/r/20230822175140.1317749-1-memxor@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/bpf/verifier.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 3a91bfd7b9cc..3d51c737a034 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -7973,17 +7973,6 @@ int check_func_arg_reg_off(struct bpf_verifier_env *env, if (arg_type_is_dynptr(arg_type) && type == PTR_TO_STACK) return 0; - if ((type_is_ptr_alloc_obj(type) || type_is_non_owning_ref(type)) && reg->off) { - if (reg_find_field_offset(reg, reg->off, BPF_GRAPH_NODE_OR_ROOT)) - return __check_ptr_off_reg(env, reg, regno, true); - - verbose(env, "R%d must have zero offset when passed to release func\n", - regno); - verbose(env, "No graph node or root found at R%d type:%s off:%d\n", regno, - btf_type_name(reg->btf, reg->btf_id), reg->off); - return -EINVAL; - } - /* Doing check_ptr_off_reg check for the offset will catch this * because fixed_off_ok is false, but checking here allows us * to give the user a better error message. |