On Wed, 22 May 2024, Anubhav Shelat wrote: > hackbench is supposed to catch when the user passes > negative arguments to options -f, -g, -l, and -s. > > Previously hackbench would allow options to accept > negative arguments, resulting in undefined behavior. > > Now process_options() assigns variables outside of > the if considiton where they are used. hackbench will > output a usage message if the user inputs a negative > argument. > > Signed-off-by: Anubhav Shelat <ashelat@xxxxxxxxxx> > --- > src/hackbench/hackbench.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/src/hackbench/hackbench.c b/src/hackbench/hackbench.c > index fec8357bef81..55be325a38df 100644 > --- a/src/hackbench/hackbench.c > +++ b/src/hackbench/hackbench.c > @@ -426,7 +426,8 @@ static void process_options(int argc, char *argv[]) > } > switch (c) { > case 'f': > - if ((num_fds = atoi(optarg)) <= 0) { > + num_fds = atoi(optarg); > + if (atoi(optarg) <= 0) { > fprintf(stderr, "%s: --fds|-f requires an integer > 0\n", argv[0]); > print_usage_exit(1); > } > @@ -435,7 +436,8 @@ static void process_options(int argc, char *argv[]) > fifo = 1; > break; > case 'g': > - if ((num_groups = atoi(optarg)) <= 0) { > + num_groups = atoi(optarg); > + if (atoi(optarg) <= 0) { > fprintf(stderr, "%s: --groups|-g requires an integer > 0\n", argv[0]); > print_usage_exit(1); > } > @@ -444,7 +446,8 @@ static void process_options(int argc, char *argv[]) > print_usage_exit(0); > break; > case 'l': > - if ((loops = atoi(optarg)) <= 0) { > + loops = atoi(optarg); > + if (atoi(optarg) <= 0) { > fprintf(stderr, "%s: --loops|-l requires an integer > 0\n", argv[0]); > print_usage_exit(1); > } > @@ -456,7 +459,8 @@ static void process_options(int argc, char *argv[]) > use_inet = 1; > break; > case 's': > - if ((datasize = atoi(optarg)) <= 0) { > + datasize = atoi(optarg); > + if (atoi(optarg) <= 0) { > fprintf(stderr, "%s: --datasize|-s requires an integer > 0\n", argv[0]); > print_usage_exit(1); > } > -- Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>