[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v2 1/2] blockdev: Error out on negative throttli
From: |
Fam Zheng |
Subject: |
Re: [Qemu-block] [PATCH v2 1/2] blockdev: Error out on negative throttling option values |
Date: |
Thu, 14 Jan 2016 11:14:15 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, 01/13 12:13, Alberto Garcia wrote:
> 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.
Those callers rely on casting preserves the MSB as the sign, but that's ugly.
Anyway I'd leave the API change for a separate series and keep this patch local
to fix this particular regression. :)
Fam
[Qemu-block] [PATCH v2 2/2] iotests: Test that negative throttle values are rejected, Fam Zheng, 2016/01/12