7a3408
From 571c0cf49730a6c636b71e42c71512ce1b772a31 Mon Sep 17 00:00:00 2001
7a3408
Message-Id: <571c0cf49730a6c636b71e42c71512ce1b772a31@dist-git>
7a3408
From: Michal Privoznik <mprivozn@redhat.com>
7a3408
Date: Mon, 10 Aug 2015 14:15:44 +0200
7a3408
Subject: [PATCH] virNetDevBandwidthParseRate: Reject negative values
7a3408
7a3408
https://bugzilla.redhat.com/show_bug.cgi?id=1022292
7a3408
7a3408
The following XML really does not make any sense:
7a3408
7a3408
<inbound average="-1" burst="-2" peak="-3" floor="-4"/>
7a3408
7a3408
There can't be a negative packet rate. Well, so far we haven't
7a3408
assigned any meaning to it. So reject it unless users harm themselves,
7a3408
because otherwise we turn the negative numbers into really big values.
7a3408
7a3408
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
7a3408
(cherry picked from commit 2a5d3f227df7be78449792103e0101a4b859c49b)
7a3408
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
7a3408
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
7a3408
---
7a3408
 src/conf/netdev_bandwidth_conf.c | 8 ++++----
7a3408
 1 file changed, 4 insertions(+), 4 deletions(-)
7a3408
7a3408
diff --git a/src/conf/netdev_bandwidth_conf.c b/src/conf/netdev_bandwidth_conf.c
7a3408
index fdd5b7f..8824332 100644
7a3408
--- a/src/conf/netdev_bandwidth_conf.c
7a3408
+++ b/src/conf/netdev_bandwidth_conf.c
7a3408
@@ -50,7 +50,7 @@ virNetDevBandwidthParseRate(xmlNodePtr node, virNetDevBandwidthRatePtr rate)
7a3408
     floor = virXMLPropString(node, "floor");
7a3408
 
7a3408
     if (average) {
7a3408
-        if (virStrToLong_ull(average, NULL, 10, &rate->average) < 0) {
7a3408
+        if (virStrToLong_ullp(average, NULL, 10, &rate->average) < 0) {
7a3408
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
7a3408
                            _("could not convert bandwidth average value '%s'"),
7a3408
                            average);
7a3408
@@ -68,21 +68,21 @@ virNetDevBandwidthParseRate(xmlNodePtr node, virNetDevBandwidthRatePtr rate)
7a3408
         goto cleanup;
7a3408
     }
7a3408
 
7a3408
-    if (peak && virStrToLong_ull(peak, NULL, 10, &rate->peak) < 0) {
7a3408
+    if (peak && virStrToLong_ullp(peak, NULL, 10, &rate->peak) < 0) {
7a3408
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
7a3408
                        _("could not convert bandwidth peak value '%s'"),
7a3408
                        peak);
7a3408
         goto cleanup;
7a3408
     }
7a3408
 
7a3408
-    if (burst && virStrToLong_ull(burst, NULL, 10, &rate->burst) < 0) {
7a3408
+    if (burst && virStrToLong_ullp(burst, NULL, 10, &rate->burst) < 0) {
7a3408
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
7a3408
                        _("could not convert bandwidth burst value '%s'"),
7a3408
                        burst);
7a3408
         goto cleanup;
7a3408
     }
7a3408
 
7a3408
-    if (floor && virStrToLong_ull(floor, NULL, 10, &rate->floor) < 0) {
7a3408
+    if (floor && virStrToLong_ullp(floor, NULL, 10, &rate->floor) < 0) {
7a3408
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
7a3408
                        _("could not convert bandwidth floor value '%s'"),
7a3408
                        floor);
7a3408
-- 
7a3408
2.5.0
7a3408