Message ID | 20221130021901.33143-3-zhaogongyi@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | Add handling of abnormal input for parse_opts() | expand |
On Wed, Nov 30, 2022 at 10:19:01AM +0800, Zhao Gongyi via ltp wrote: > Replace atoi/atof with SAFE_STRTOL/SAFE_STRTOF in parse_opts(), > it is hoped to deal with the abnormal input. > > Modify the requirement iterations range from '>= 0' to '> 0', > when iterations' value equal to 0, the test will not run. > > Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com> > --- > lib/tst_test.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/lib/tst_test.c b/lib/tst_test.c > index b62559d75..254229d96 100644 > --- a/lib/tst_test.c > +++ b/lib/tst_test.c > @@ -677,15 +677,13 @@ static void parse_opts(int argc, char *argv[]) > print_test_tags(); > exit(0); > case 'i': > - iterations = atoi(optarg); > - if (iterations < 0) > - tst_brk(TBROK, "Number of iterations (-i) must be >= 0"); > + iterations = SAFE_STRTOL(optarg, 1, INT_MAX); > break; > case 'I': > if (tst_test->max_runtime > 0) > - tst_test->max_runtime = atoi(optarg); > + tst_test->max_runtime = SAFE_STRTOL(optarg, 1, INT_MAX); > else > - duration = atof(optarg); > + duration = SAFE_STRTOF(optarg); Shouldn't we limit the duration to positive numbers here as well? I guess that we should add min and max option to the SAFE_STRTOF() and call the conversion with SAFE_STRTOF(optarg, 0.1, HUGE_VALF); here instead. > break; > case 'C': > #ifdef UCLINUX > -- > 2.17.1 > > > -- > Mailing list info: https://lists.linux.it/listinfo/ltp
diff --git a/lib/tst_test.c b/lib/tst_test.c index b62559d75..254229d96 100644 --- a/lib/tst_test.c +++ b/lib/tst_test.c @@ -677,15 +677,13 @@ static void parse_opts(int argc, char *argv[]) print_test_tags(); exit(0); case 'i': - iterations = atoi(optarg); - if (iterations < 0) - tst_brk(TBROK, "Number of iterations (-i) must be >= 0"); + iterations = SAFE_STRTOL(optarg, 1, INT_MAX); break; case 'I': if (tst_test->max_runtime > 0) - tst_test->max_runtime = atoi(optarg); + tst_test->max_runtime = SAFE_STRTOL(optarg, 1, INT_MAX); else - duration = atof(optarg); + duration = SAFE_STRTOF(optarg); break; case 'C': #ifdef UCLINUX
Replace atoi/atof with SAFE_STRTOL/SAFE_STRTOF in parse_opts(), it is hoped to deal with the abnormal input. Modify the requirement iterations range from '>= 0' to '> 0', when iterations' value equal to 0, the test will not run. Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com> --- lib/tst_test.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) -- 2.17.1