tools/testing/selftests/bpf/xskxceiver.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
From: Mahdi Faramarzpour <mahdifrmx@gmail.com>
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@gmail.com>
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
> Signd-off-by: Mahdi Faramarzpour <mahdifrmx@gmail.com> Should this be "Signed-off-by"? --- AI reviewed your patch. Please fix the bug or email reply why it's not a bug. See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md CI run summary: https://github.com/kernel-patches/bpf/actions/runs/22090844124 AI-authorship-score: low AI-authorship-explanation: Natural writing style with human uncertainty markers and specific manpage citation suggest human authorship; the Signed-off-by typo is consistent with human error. issues-found: 1 issue-severity-score: low issue-severity-explanation: Misspelled Signed-off-by tag (Signd-off-by) breaks the Developer Certificate of Origin chain and automated tooling recognition.
On Tue, Feb 17, 2026 at 11:34 AM Mahdi Faramarzpour <mahdifrmx@gmail.com> wrote:
>
> From: Mahdi Faramarzpour <mahdifrmx@gmail.com>
>
> 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@gmail.com>
> 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.
On Tue, Feb 17, 2026 at 11:33:26AM +0330, Mahdi Faramarzpour wrote:
> From: Mahdi Faramarzpour <mahdifrmx@gmail.com>
>
> 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@gmail.com>
> Fixes: 146e30554a53 ("selftests/xsk: add option to run single test")
Hi Mahdi, selftests related patches are supposed to be routed via
bpf-next tree. Also your SoB line should be last in the set of tags.
> ---
> 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
>
© 2016 - 2026 Red Hat, Inc.