aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorFam Zheng <famz@redhat.com>2016-01-20 12:21:20 +0800
committerKevin Wolf <kwolf@redhat.com>2016-01-20 13:37:37 +0100
commit972606c4db826f286f7f475551180502859f49b9 (patch)
tree125805ef1ec52a3c930a1c5e900c76410e92b4be /include
parentd62d9dc4b814950dcc8bd261a3e2e9300d9065e6 (diff)
downloadqemu-972606c4db826f286f7f475551180502859f49b9.zip
qemu-972606c4db826f286f7f475551180502859f49b9.tar.gz
qemu-972606c4db826f286f7f475551180502859f49b9.tar.bz2
blockdev: Error out on negative throttling option values
extract_common_blockdev_options() uses qemu_opt_get_number() to parse the bps/iops numbers to uint64_t, then converts to double and stores in ThrottleConfig. The actual parsing is done by strtoull() in parse_option_number(). Negative numbers are wrapped to large positive ones, and stored. We used to reject negative numbers since 7d81c1413c9, but this regressed when the option parsing code was changed later. Now fix this again. This time, define an arbitrary large upper limit (1e15), and check the values so both negative and impractically big numbers are caught and reported. Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/qemu/throttle.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/qemu/throttle.h b/include/qemu/throttle.h
index 12faaad..d0c98ed 100644
--- a/include/qemu/throttle.h
+++ b/include/qemu/throttle.h
@@ -29,6 +29,8 @@
#include "qemu-common.h"
#include "qemu/timer.h"
+#define THROTTLE_VALUE_MAX 1000000000000000LL
+
typedef enum {
THROTTLE_BPS_TOTAL,
THROTTLE_BPS_READ,