From: zhang jiao zhangjiao2@cmss.chinamobile.com
By readind the code, I found there is no free() after asprintf(). Just free it.
Signed-off-by: zhang jiao zhangjiao2@cmss.chinamobile.com --- v1->v2: Set a flag to determine if test_name needs free. tools/testing/selftests/futex/functional/futex_requeue_pi.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tools/testing/selftests/futex/functional/futex_requeue_pi.c b/tools/testing/selftests/futex/functional/futex_requeue_pi.c index 215c6cb539b4..d78bb5112fce 100644 --- a/tools/testing/selftests/futex/functional/futex_requeue_pi.c +++ b/tools/testing/selftests/futex/functional/futex_requeue_pi.c @@ -362,6 +362,7 @@ int main(int argc, char *argv[]) { char *test_name; int c, ret; + int need_f = 1;
while ((c = getopt(argc, argv, "bchlot:v:")) != -1) { switch (c) { @@ -404,6 +405,7 @@ int main(int argc, char *argv[]) "%s broadcast=%d locked=%d owner=%d timeout=%ldns", TEST_NAME, broadcast, locked, owner, timeout_ns); if (ret < 0) { + need_f = 0; ksft_print_msg("Failed to generate test name\n"); test_name = TEST_NAME; } @@ -416,5 +418,7 @@ int main(int argc, char *argv[]) ret = unit_test(broadcast, locked, owner, timeout_ns);
print_result(test_name, ret); + if (need_f) + free(test_name); return ret; }
On 9/4/24 20:01, zhangjiao2 wrote:
From: zhang jiao zhangjiao2@cmss.chinamobile.com
By readind the code, I found there is no free() after asprintf(). Just free it.
Signed-off-by: zhang jiao zhangjiao2@cmss.chinamobile.com
v1->v2: Set a flag to determine if test_name needs free. tools/testing/selftests/futex/functional/futex_requeue_pi.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tools/testing/selftests/futex/functional/futex_requeue_pi.c b/tools/testing/selftests/futex/functional/futex_requeue_pi.c index 215c6cb539b4..d78bb5112fce 100644 --- a/tools/testing/selftests/futex/functional/futex_requeue_pi.c +++ b/tools/testing/selftests/futex/functional/futex_requeue_pi.c @@ -362,6 +362,7 @@ int main(int argc, char *argv[]) { char *test_name; int c, ret;
- int need_f = 1;
This can be a bool which - better to set it to false as a initial value.
while ((c = getopt(argc, argv, "bchlot:v:")) != -1) { switch (c) { @@ -404,6 +405,7 @@ int main(int argc, char *argv[]) "%s broadcast=%d locked=%d owner=%d timeout=%ldns", TEST_NAME, broadcast, locked, owner, timeout_ns); if (ret < 0) {
need_f = 0;
You would set it to TRUE here.
ksft_print_msg("Failed to generate test name\n"); test_name = TEST_NAME;
} @@ -416,5 +418,7 @@ int main(int argc, char *argv[]) ret = unit_test(broadcast, locked, owner, timeout_ns); print_result(test_name, ret);
- if (need_f)
Check against TRUE
return ret; }free(test_name);
thanks, -- Shuah
linux-kselftest-mirror@lists.linaro.org