On Wed 13 Jan 2016 12:02:00 PM CET, Fam Zheng wrote: >> > Check the number range so this case is catched and reported. >> >> I still don't know why qemu_opt_get_number() convert silently >> negative numbers into positive ones, shouldn't it just fail with an >> "invalid parameter" error? > > Because the parsing is done with strtoull(3) and unfortunately its man > page says "negative values are considered valid input and are silently > converted to the equivalent unsigned long int value."
I see... parse_uint() from cutils.c handles that by making an explicit check for negative numbers. It probably makes sense to apply the same solution (or even merge the code to the extent to which it's possible). I also noticed that there's a couple of places where we're calling qemu_opt_get_number() passing -1 as default value, so maybe that API needs to be reviewed anyway. Berto