diff mbox series

selftests/bpf: fix a test for snprintf() overflow

Message ID YtZ+aD/tZMkgOUw+@kili (mailing list archive)
State Accepted
Commit c5d22f4cfe8dfb93f1db0a1e7e2e7ebc41395d98
Headers show
Series selftests/bpf: fix a test for snprintf() overflow | expand

Commit Message

Dan Carpenter July 19, 2022, 9:50 a.m. UTC
The snprintf() function returns the number of bytes which *would*
have been copied if there were space.  In other words, it can be
> sizeof(pin_path).

Fixes: c0fa1b6c3efc ("bpf: btf: Add BTF tests")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 tools/testing/selftests/bpf/prog_tests/btf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Martin KaFai Lau July 19, 2022, 5:22 p.m. UTC | #1
On Tue, Jul 19, 2022 at 12:50:32PM +0300, Dan Carpenter wrote:
> The snprintf() function returns the number of bytes which *would*
> have been copied if there were space.  In other words, it can be
> > sizeof(pin_path).
The current test does not fail on this check,
so this could be bpf-next.

Acked-by: Martin KaFai Lau <kafai@fb.com>
patchwork-bot+netdevbpf@kernel.org July 19, 2022, 5:50 p.m. UTC | #2
Hello:

This patch was applied to bpf/bpf-next.git (master)
by Alexei Starovoitov <ast@kernel.org>:

On Tue, 19 Jul 2022 12:50:32 +0300 you wrote:
> The snprintf() function returns the number of bytes which *would*
> have been copied if there were space.  In other words, it can be
> > sizeof(pin_path).
> 
> Fixes: c0fa1b6c3efc ("bpf: btf: Add BTF tests")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> [...]

Here is the summary with links:
  - selftests/bpf: fix a test for snprintf() overflow
    https://git.kernel.org/bpf/bpf-next/c/c5d22f4cfe8d

You are awesome, thank you!
diff mbox series

Patch

diff --git a/tools/testing/selftests/bpf/prog_tests/btf.c b/tools/testing/selftests/bpf/prog_tests/btf.c
index 941b0100bafa..ef6528b8084c 100644
--- a/tools/testing/selftests/bpf/prog_tests/btf.c
+++ b/tools/testing/selftests/bpf/prog_tests/btf.c
@@ -5338,7 +5338,7 @@  static void do_test_pprint(int test_num)
 	ret = snprintf(pin_path, sizeof(pin_path), "%s/%s",
 		       "/sys/fs/bpf", test->map_name);
 
-	if (CHECK(ret == sizeof(pin_path), "pin_path %s/%s is too long",
+	if (CHECK(ret >= sizeof(pin_path), "pin_path %s/%s is too long",
 		  "/sys/fs/bpf", test->map_name)) {
 		err = -1;
 		goto done;