Thanks for explaining. I got it. I will submit the patches with new updates.
On Tue, Nov 10, 2020 at 1:23 PM David Marchand <david.march...@redhat.com> wrote: > > On Tue, Nov 10, 2020 at 7:10 AM Ibtisam Tariq <ibtisam.ta...@emumba.com> > wrote: > > IMHO, it cannot be moved to read_uint16 parser. > > If we do, we can't verify that the user input value is greater than > > UINT16 MAX or not on the overflow data. > > > > + if (data_room_size == 0 || > > > > + data_room_size > UINT16_MAX) { > > > > + cryptodev_fips_validate_usage(prgname); > > > > + return -EINVAL; > > > > + } > > > > The temp variable:data_room_size is necessary to check the overflow of > > the command line argument. > > The overflow check can go to a new read_uint16 parser, like what is > done in other parsers in this example. > > int > parser_read_uint32(uint32_t *value, char *p) > { > uint64_t val = 0; > int ret = parser_read_uint64(&val, p); > if (ret < 0) > return ret; > if (val > UINT32_MAX) > return -EINVAL; > *value = val; > return 0; > } > > The parser_read_uint16 caller can do any additional check, here test > for 0 value. > > > -- > David Marchand > -- - Ibtisam