[PATCH 11/25] conf: Move disk vendor and product pritability check to domain_validate

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

 



Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 src/conf/domain_conf.c     | 12 ------------
 src/conf/domain_validate.c | 37 +++++++++++++++++++++++++++----------
 2 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index c8c0476a42..0738bf7f1f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9433,22 +9433,10 @@ virDomainDiskDefParseXML(virDomainXMLOption *xmlopt,
                    virXMLNodeNameEqual(cur, "vendor")) {
             if (!(vendor = virXMLNodeContentString(cur)))
                 return NULL;
-
-            if (!virStringIsPrintable(vendor)) {
-                virReportError(VIR_ERR_XML_ERROR, "%s",
-                               _("disk vendor is not printable string"));
-                return NULL;
-            }
         } else if (!product &&
                    virXMLNodeNameEqual(cur, "product")) {
             if (!(product = virXMLNodeContentString(cur)))
                 return NULL;
-
-            if (!virStringIsPrintable(product)) {
-                virReportError(VIR_ERR_XML_ERROR, "%s",
-                               _("disk product is not printable string"));
-                return NULL;
-            }
         } else if (virXMLNodeNameEqual(cur, "boot")) {
             /* boot is parsed as part of virDomainDeviceInfoParseXML */
         } else if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 97fa218252..b2780b3562 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -27,6 +27,7 @@
 #include "virconftypes.h"
 #include "virlog.h"
 #include "virutil.h"
+#include "virstring.h"

 #define VIR_FROM_THIS VIR_FROM_DOMAIN

@@ -607,18 +608,34 @@ virDomainDiskDefValidate(const virDomainDef *def,
         return -1;
     }

-    if (disk->vendor && strlen(disk->vendor) > VENDOR_LEN) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("disk vendor is more than %d characters"),
-                       VENDOR_LEN);
-        return -1;
+    if (disk->vendor) {
+        if (!virStringIsPrintable(disk->vendor)) {
+            virReportError(VIR_ERR_XML_ERROR, "%s",
+                           _("disk vendor is not printable string"));
+            return -1;
+        }
+
+        if (strlen(disk->vendor) > VENDOR_LEN) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("disk vendor is more than %d characters"),
+                           VENDOR_LEN);
+            return -1;
+        }
     }

-    if (disk->product && strlen(disk->product) > PRODUCT_LEN) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("disk product is more than %d characters"),
-                       PRODUCT_LEN);
-        return -1;
+    if (disk->product) {
+        if (!virStringIsPrintable(disk->product)) {
+            virReportError(VIR_ERR_XML_ERROR, "%s",
+                           _("disk product is not printable string"));
+            return -1;
+        }
+
+        if (strlen(disk->product) > PRODUCT_LEN) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("disk product is more than %d characters"),
+                           PRODUCT_LEN);
+            return -1;
+        }
     }

     if (disk->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY &&
-- 
2.30.2




[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]

  Powered by Linux