selftests/bpf: fix a test for snprintf() overflow
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 19 Jul 2022 09:50:32 +0000 (12:50 +0300)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 19 Jul 2022 17:45:45 +0000 (10:45 -0700)
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>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/r/YtZ+aD/tZMkgOUw+@kili
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/btf.c

index 941b010..ef6528b 100644 (file)
@@ -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;