summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAmit Shah <amit.shah@redhat.com>2011-07-27 16:50:54 +0530
committerAnthony Liguori <aliguori@us.ibm.com>2011-08-04 16:43:09 -0500
commit514e73ecebc0aeadef218e91e36ee42b3d145c93 (patch)
treefb320a1db7f9e401e1832c5de193a99445aaf922
parentf76f665547f4a954a2c83552a88816fc2a316be0 (diff)
downloadfocaccia-qemu-514e73ecebc0aeadef218e91e36ee42b3d145c93.tar.gz
focaccia-qemu-514e73ecebc0aeadef218e91e36ee42b3d145c93.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.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;