Message ID | 1405379683-4672-1-git-send-email-jsnow@redhat.com |
---|---|
State | New |
Headers | show |
On (Mon) 14 Jul 2014 [19:14:43], 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. > > Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Thanks, Amit
On Tue, Jul 15, 2014 at 10:21:47AM +0530, Amit Shah wrote: > On (Mon) 14 Jul 2014 [19:14:43], 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. > > > > Signed-off-by: John Snow <jsnow@redhat.com> > > Reviewed-by: Amit Shah <amit.shah@redhat.com> Amit, are you sending a pull request? I'm not sure whose tree this goes through. Stefan
On (Tue) 15 Jul 2014 [11:18:31], Stefan Hajnoczi wrote: > On Tue, Jul 15, 2014 at 10:21:47AM +0530, Amit Shah wrote: > > On (Mon) 14 Jul 2014 [19:14:43], 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. > > > > > > Signed-off-by: John Snow <jsnow@redhat.com> > > > > Reviewed-by: Amit Shah <amit.shah@redhat.com> > > Amit, are you sending a pull request? I'm not sure whose tree this goes > through. Yes, I'll do that. Amit
diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c index 1356aca..e4d2e68 100644 --- a/hw/virtio/virtio-rng.c +++ b/hw/virtio/virtio-rng.c @@ -181,7 +181,11 @@ 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); + if (vrng->conf.max_bytes > INT64_MAX) { + error_set(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE, "virtio-rng", + "max_bytes", vrng->conf.max_bytes, 0L, INT64_MAX); + return; + } vrng->quota_remaining = vrng->conf.max_bytes; vrng->rate_limit_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL,
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. Signed-off-by: John Snow <jsnow@redhat.com> --- hw/virtio/virtio-rng.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)