]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
bpf: Zero index arg error string for dynptr and iter
authorKumar Kartikeya Dwivedi <memxor@gmail.com>
Tue, 3 Dec 2024 00:22:35 +0000 (16:22 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Jan 2025 09:34:18 +0000 (10:34 +0100)
commitfdaaf929432f3ead52074ff535aecc7bed5deb18
treef50037870933daf13ae45d7c6288ce1c7ff26c46
parenta089dad6f92d21184cdd867dbd2af1e9193dde4e
bpf: Zero index arg error string for dynptr and iter

[ Upstream commit bd74e238ae6944b462f57ce8752440a011ba4530 ]

Andrii spotted that process_dynptr_func's rejection of incorrect
argument register type will print an error string where argument numbers
are not zero-indexed, unlike elsewhere in the verifier.  Fix this by
subtracting 1 from regno. The same scenario exists for iterator
messages. Fix selftest error strings that match on the exact argument
number while we're at it to ensure clean bisection.

Suggested-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20241203002235.3776418-1-memxor@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/bpf/verifier.c
tools/testing/selftests/bpf/progs/dynptr_fail.c
tools/testing/selftests/bpf/progs/iters_state_safety.c
tools/testing/selftests/bpf/progs/iters_testmod_seq.c
tools/testing/selftests/bpf/progs/test_kfunc_dynptr_param.c
tools/testing/selftests/bpf/progs/verifier_bits_iter.c