selftests/bpf: Add test passing MAYBE_NULL reg to bpf_refcount_acquire
The test added in this patch exercises the logic fixed in the previous patch in this series. Before the previous patch's changes, bpf_refcount_acquire accepts MAYBE_NULL local kptrs; after the change the verifier correctly rejects the such a call. Signed-off-by: Dave Marchevsky <davemarchevsky@fb.com> Link: https://lore.kernel.org/r/20231107085639.3016113-3-davemarchevsky@fb.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
1500a5d9f4
commit
f460e7bdb0
@ -53,6 +53,25 @@ long rbtree_refcounted_node_ref_escapes(void *ctx)
|
||||
return 0;
|
||||
}
|
||||
|
||||
SEC("?tc")
|
||||
__failure __msg("Possibly NULL pointer passed to trusted arg0")
|
||||
long refcount_acquire_maybe_null(void *ctx)
|
||||
{
|
||||
struct node_acquire *n, *m;
|
||||
|
||||
n = bpf_obj_new(typeof(*n));
|
||||
/* Intentionally not testing !n
|
||||
* it's MAYBE_NULL for refcount_acquire
|
||||
*/
|
||||
m = bpf_refcount_acquire(n);
|
||||
if (m)
|
||||
bpf_obj_drop(m);
|
||||
if (n)
|
||||
bpf_obj_drop(n);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
SEC("?tc")
|
||||
__failure __msg("Unreleased reference id=3 alloc_insn=9")
|
||||
long rbtree_refcounted_node_ref_escapes_owning_input(void *ctx)
|
||||
|
Loading…
x
Reference in New Issue
Block a user