From: John Snow <jsnow@redhat.com>
To: Amit Shah <amit.shah@redhat.com>, Markus Armbruster <armbru@redhat.com>
Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v3] virtio-rng: Add human-readable error message for negative max-bytes parameter
Date: Tue, 22 Jul 2014 11:30:28 -0400 [thread overview]
Message-ID: <53CE8394.6070101@redhat.com> (raw)
In-Reply-To: <20140722114850.GE18209@grmbl.mre>
On 07/22/2014 07:48 AM, Amit Shah wrote:
> On (Tue) 22 Jul 2014 [13:41:43], Markus Armbruster wrote:
>> Amit Shah <amit.shah@redhat.com> writes:
>>
>>> On (Mon) 21 Jul 2014 [17:44:37], John Snow wrote:
>>>> If a negative integer is used for the max_bytes parameter, QEMU currently
>>>> calls abort() and leaves behind a core dump. This patch adds a simple
>>>> error message to make the reason for the termination clearer.
>>>>
>>>> There is an underlying insufficiency in the parameter parsing code of QEMU
>>>> that renders it unable to reject negative values for unsigned properties,
>>>> thus the error message "a non-negative integer below 2^63" is the most
>>>> user-friendly and correct message we can give until the underlying
>>>> insufficiency is corrected.
>>>>
>>>> Signed-off-by: John Snow <jsnow@redhat.com>
>>>> ---
>>>> v3: Adjusted the error message to be more semantically meaningful, but
>>>> while acknowledging the limitations of the current unsigned integer
>>>> parsing routines.
>>>>
>>>> hw/virtio/virtio-rng.c | 8 +++++++-
>>>> 1 file changed, 7 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c
>>>> index 1356aca..7c5a675 100644
>>>> --- a/hw/virtio/virtio-rng.c
>>>> +++ b/hw/virtio/virtio-rng.c
>>>> @@ -181,7 +181,13 @@ static void virtio_rng_device_realize(DeviceState *dev, Error **errp)
>>>>
>>>> vrng->vq = virtio_add_queue(vdev, 8, handle_input);
>>>>
>>>> - assert(vrng->conf.max_bytes <= INT64_MAX);
>>>> + /* Workaround: Property parsing does not enforce unsigned integers,
>>>> + * So this is a hack to reject such numbers. */
>>>> + if (vrng->conf.max_bytes > INT64_MAX) {
>>>> + error_set(errp, QERR_INVALID_PARAMETER_VALUE, "max-bytes",
>>>> + "a non-negative integer below 2^63");
>>> Huh, why do we allow 0? There's no reason to have 0 as a max-bytes
>>> value as well...
>> Could be treated as separate problem.
> Yep, don't mean to hold this up for that one.
>
> Thanks for the reviewed-by.
>
> Amit
Yes, 0 makes no sense, but there are a lot of extremely low values that
cause problems. The current release allows you to input 0 so I left it
as-is. The decision for what a reasonable minimum might be is perhaps up
to the user, unless a better technical limit is found (like 1K? 2K? 4K?)
We could also change parsing for this property to use the "size"
attribute (instead of unsigned integers) to allow users to specify e.g,
4K/ms or 16K/ms and so on. It changes the nature of the sign problem for
this property, though that problem for parsing in general still needs to
be addressed in a future release.
Thanks :)
next prev parent reply other threads:[~2014-07-22 15:30 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-21 21:44 [Qemu-devel] [PATCH v3] virtio-rng: Add human-readable error message for negative max-bytes parameter John Snow
2014-07-22 10:58 ` Markus Armbruster
2014-07-22 11:03 ` Amit Shah
2014-07-22 11:41 ` Markus Armbruster
2014-07-22 11:16 ` Amit Shah
2014-07-22 11:41 ` Markus Armbruster
2014-07-22 11:48 ` Amit Shah
2014-07-22 15:30 ` John Snow [this message]
2014-07-22 15:56 ` Amit Shah
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53CE8394.6070101@redhat.com \
--to=jsnow@redhat.com \
--cc=amit.shah@redhat.com \
--cc=armbru@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).