It was easy to escape the checking. For example, run ./hackbench --datasize 4096 -g -1 -l -1 This patch fixes the checking. Signed-off-by: Yihao Wu <wuyihao@xxxxxxxxxxxxxxxxx> --- src/hackbench/hackbench.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/hackbench/hackbench.c b/src/hackbench/hackbench.c index 268c232..b9b0af6 100644 --- a/src/hackbench/hackbench.c +++ b/src/hackbench/hackbench.c @@ -31,10 +31,10 @@ #include <setjmp.h> #include <sched.h> -static unsigned int datasize = 100; -static unsigned int loops = 100; -static unsigned int num_groups = 10; -static unsigned int num_fds = 20; +static int datasize = 100; +static int loops = 100; +static int num_groups = 10; +static int num_fds = 20; static unsigned int fifo = 0; /* @@ -377,7 +377,7 @@ static void process_options(int argc, char *argv[]) } switch (c) { case 'f': - if (!(argv[optind] && (num_fds = atoi(optarg)) > 0)) { + if ((num_fds = atoi(optarg)) <= 0) { fprintf(stderr, "%s: --fds|-f requires an integer > 0\n", argv[0]); print_usage_exit(1); } @@ -386,7 +386,7 @@ static void process_options(int argc, char *argv[]) fifo = 1; break; case 'g': - if (!(argv[optind] && (num_groups = atoi(optarg)) > 0)) { + if ((num_groups = atoi(optarg)) <= 0) { fprintf(stderr, "%s: --groups|-g requires an integer > 0\n", argv[0]); print_usage_exit(1); } @@ -394,7 +394,7 @@ static void process_options(int argc, char *argv[]) case 'h': print_usage_exit(0); case 'l': - if (!(argv[optind] && (loops = atoi(optarg)) > 0)) { + if ((loops = atoi(optarg)) <= 0) { fprintf(stderr, "%s: --loops|-l requires an integer > 0\n", argv[0]); print_usage_exit(1); } @@ -403,7 +403,7 @@ static void process_options(int argc, char *argv[]) use_pipes = 1; break; case 's': - if (!(argv[optind] && (datasize = atoi(optarg)) > 0)) { + if ((datasize = atoi(optarg)) <= 0) { fprintf(stderr, "%s: --datasize|-s requires an integer > 0\n", argv[0]); print_usage_exit(1); } -- 2.18.2