summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Shah <amit.shah@redhat.com>2011-07-27 16:50:54 +0530
committerAmit Shah <amit.shah@redhat.com>2011-07-28 15:10:27 +0530
commit9843621e3b03d36aa64d57abedc6d03bde464dd3 (patch)
tree2e25ab20a4ff30f4919a0cee914545e204e6ac7e
parentab640dbfc04651ede92495a4067c826db068c1a7 (diff)
downloadqemu-9843621e3b03d36aa64d57abedc6d03bde464dd3.tar.gz
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.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/balloon.c b/balloon.c
index 5200565cb2..f56fdc1c4b 100644
--- a/balloon.c
+++ b/balloon.c
@@ -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;