[PATCH bpf] bpf: fix selftest/xsk single test selection

From: Mahdi Faramarzpour

Date: Tue Feb 17 2026 - 03:06:17 EST


From: Mahdi Faramarzpour <mahdifrmx@xxxxxxxxx>

This commit fixes the integer parsing of -t option. The cli parser
only relies on errno to detect parsing errors. The manpage for
strtol (https://man7.org/linux/man-pages/man3/strtol.3.html)
states that the said function "MAY" set errno to EINVAL in case the
conversion fails. Currently on some systems, this leads to a silent
failure with return value not being exactly documented in the
manpages (probably zero). The reliable way to validate the input is
to check whether the endptr has been bumped all the way to the end
of the string or not.

Signd-off-by: Mahdi Faramarzpour <mahdifrmx@xxxxxxxxx>
Fixes: 146e30554a53 ("selftests/xsk: add option to run single test")
---
tools/testing/selftests/bpf/xskxceiver.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
index 05b3cebc5..f2d5c4dd2 100644
--- a/tools/testing/selftests/bpf/xskxceiver.c
+++ b/tools/testing/selftests/bpf/xskxceiver.c
@@ -247,9 +247,10 @@ static void parse_command_line(struct ifobject *ifobj_tx, struct ifobject *ifobj
opt_print_tests = true;
break;
case 't':
+ char *eptr;
errno = 0;
- opt_run_test = strtol(optarg, NULL, 0);
- if (errno)
+ opt_run_test = strtol(optarg, &eptr, 0);
+ if (errno || *eptr)
print_usage(argv);
break;
case 'h':
--
2.34.1