Re: [PATCH bpf-next] bpf: fix selftest/xsk single test selection
From: Alexei Starovoitov
Date: Tue Feb 24 2026 - 23:06:39 EST
On Wed, Feb 18, 2026 at 1:20 AM Mahdi Faramarzpour <mahdifrmx@xxxxxxxxx> wrote:
>
> 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.
>
> Fixes: 146e30554a53 ("selftests/xsk: add option to run single test")
> Signed-off-by: Mahdi Faramarzpour <mahdifrmx@xxxxxxxxx>
> ---
> v2:
> - fix style issues
> v1: https://lore.kernel.org/all/20260217080326.50564-1-mahdifrmz@xxxxxxxxx/
> ---
> 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..5e4095fd1 100644
> --- a/tools/testing/selftests/bpf/xskxceiver.c
> +++ b/tools/testing/selftests/bpf/xskxceiver.c
> @@ -200,6 +200,7 @@ static void parse_command_line(struct ifobject *ifobj_tx, struct ifobject *ifobj
> struct ifobject *ifobj;
> u32 interface_nb = 0;
> int option_index, c;
> + char *eptr;
>
> opterr = 0;
>
> @@ -248,8 +249,8 @@ static void parse_command_line(struct ifobject *ifobj_tx, struct ifobject *ifobj
> break;
> case 't':
> errno = 0;
> - opt_run_test = strtol(optarg, NULL, 0);
> - if (errno)
> + opt_run_test = strtol(optarg, &eptr, 0);
> + if (errno || *eptr)
This is unnecessary. It was required we would have hit segfaults by now.
pw-bot: cr