On Wed, Feb 18, 2026 at 1:20 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. > > Fixes: 146e30554a53 ("selftests/xsk: add option to run single test") > Signed-off-by: Mahdi Faramarzpour <[email protected]> > --- > v2: > - fix style issues > v1: https://lore.kernel.org/all/[email protected]/ > --- > 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

