diff options
author | 2011-07-27 16:50:54 +0530 | |
---|---|---|
committer | 2011-07-28 15:10:27 +0530 | |
commit | 9843621e3b03d36aa64d57abedc6d03bde464dd3 (patch) | |
tree | 2e25ab20a4ff30f4919a0cee914545e204e6ac7e | |
parent | virtio-balloon: Check if balloon registration failed (diff) | |
download | qemu-kvm-9843621e3b03d36aa64d57abedc6d03bde464dd3.tar.gz qemu-kvm-9843621e3b03d36aa64d57abedc6d03bde464dd3.tar.bz2 qemu-kvm-9843621e3b03d36aa64d57abedc6d03bde464dd3.zip |
balloon: Reject negative balloon values
Negative balloon values don't make sense, reject them and throw a qerror
with QERR_INVALID_PARAMETER_VALUE.
Reported-by: Mike Cao <bcao@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | balloon.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -140,6 +140,7 @@ int do_info_balloon(Monitor *mon, MonitorCompletion cb, void *opaque) int do_balloon(Monitor *mon, const QDict *params, MonitorCompletion cb, void *opaque) { + int64_t target; int ret; if (kvm_enabled() && !kvm_has_sync_mmu()) { @@ -147,7 +148,12 @@ int do_balloon(Monitor *mon, const QDict *params, return -1; } - ret = qemu_balloon(qdict_get_int(params, "value")); + target = qdict_get_int(params, "value"); + if (target <= 0) { + qerror_report(QERR_INVALID_PARAMETER_VALUE, "target", "a size"); + return -1; + } + ret = qemu_balloon(target); if (ret == 0) { qerror_report(QERR_DEVICE_NOT_ACTIVE, "balloon"); return -1; |