On Tue, Feb 17, 2026 at 11:34 AM Mahdi Faramarzpour <[email protected]> wrote:
>
> From: Mahdi Faramarzpour <[email protected]>
>
> 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 <[email protected]>
> 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
>
Some style issues and typos, will send the follow up tomorrow.