[PATCH 1/2] conf: reject duplicate paths in device weights

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The next patch will make it possible to have virDomainSetBlkioParameters
leave device weights unchanged if they are not mentioned in the incoming
string, but this only works if the list of block weights does not allow
duplicate paths.  Technically, a user can still confuse libvirt by
passing alternate spellings that resolve to the same device, but it
is not worth worrying about working around that kind of abuse.

* src/conf/domain_conf.c (virDomainDefParseXML): Require unique
paths.
---
 src/conf/domain_conf.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d50a5c7..8221c28 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -6908,10 +6908,20 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
         goto no_memory;

     for (i = 0; i < n; i++) {
+        int j;
         if (virDomainBlkioDeviceWeightParseXML(nodes[i],
                                                &def->blkio.devices[i]) < 0)
             goto error;
         def->blkio.ndevices++;
+        for (j = 0; j < i; j++) {
+            if (STREQ(def->blkio.devices[j].path,
+                      def->blkio.devices[i].path)) {
+                virDomainReportError(VIR_ERR_XML_ERROR,
+                                     _("duplicate device weight path '%s'"),
+                                     def->blkio.devices[i].path);
+                goto error;
+            }
+        }
     }
     VIR_FREE(nodes);

-- 
1.7.7.3

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]