]> xenbits.xensource.com Git - libvirt.git/commitdiff
Forbid new-line char in name of new domain
authorSławek Kapłoński <slawek@kaplonski.pl>
Fri, 11 Nov 2016 09:17:37 +0000 (10:17 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 22 Nov 2016 13:35:14 +0000 (14:35 +0100)
New line character in name of domain is now forbidden because it
mess virsh output and can be confusing for users.
Validation of name is done in drivers, after parsing XML to avoid
problems with dissappeared domains which was already created with
new-line char in name.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
12 files changed:
src/bhyve/bhyve_driver.c
src/esx/esx_driver.c
src/libxl/libxl_driver.c
src/lxc/lxc_driver.c
src/openvz/openvz_driver.c
src/qemu/qemu_driver.c
src/test/test_driver.c
src/uml/uml_driver.c
src/vmware/vmware_driver.c
src/vz/vz_driver.c
src/xen/xen_driver.c
src/xenapi/xenapi_driver.c

index 38fb9f0593d6669942902fe0913b120a1552056a..17f85245d19624361c778d863cead3fc0444a674 100644 (file)
@@ -541,6 +541,9 @@ bhyveDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flag
                                        NULL, parse_flags)) == NULL)
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", def->name, "\n") < 0)
+        goto cleanup;
+
     if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0)
         goto cleanup;
 
index 17ef00fd977b4933947dc5158713cfe81ca778e7..166d4bcfccd5091fe1eebf2c969c56398f4142c6 100644 (file)
@@ -3051,6 +3051,9 @@ esxDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags)
     if (!def)
         return NULL;
 
+    if (virXMLCheckIllegalChars("name", def->name, "\n") < 0)
+        goto cleanup;
+
     /* Check if an existing domain should be edited */
     if (esxVI_LookupVirtualMachineByUuid(priv->primary, def->uuid, NULL,
                                          &virtualMachine,
index b2f3b162dee3a1c68436b457d0d3a9c3dda20ea3..3efa91eee8e314677e609b662138cef26826619c 100644 (file)
@@ -2791,6 +2791,9 @@ libxlDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flag
                                         NULL, parse_flags)))
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", def->name, "\n") < 0)
+        goto cleanup;
+
     if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0)
         goto cleanup;
 
index 4a0165a6160d480cad5ff79bb2c4d0956382d4be..a6776a1933c86b0262d16292c83d55ab042efe0c 100644 (file)
@@ -475,6 +475,9 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags)
                                         NULL, parse_flags)))
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", def->name, "\n") < 0)
+        goto cleanup;
+
     if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0)
         goto cleanup;
 
index 38a562ed5df77a0e1848782f926eec8323cc08f2..1dfb1ccf49fcaef3971fd04c809e9a9861630e21 100644 (file)
@@ -1000,6 +1000,9 @@ openvzDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int fla
                                          NULL, parse_flags)) == NULL)
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", vmdef->name, "\n") < 0)
+        goto cleanup;
+
     if (!(vm = virDomainObjListAdd(driver->domains, vmdef,
                                    driver->xmlopt,
                                    0, NULL)))
index d039255bebd910611da793fae7818f0e002fcf53..5ee3f93f9ebbdffb4e51a59c2e69375d0681269b 100644 (file)
@@ -7339,6 +7339,9 @@ qemuDomainDefineXMLFlags(virConnectPtr conn,
                                         NULL, parse_flags)))
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", def->name, "\n") < 0)
+        goto cleanup;
+
     if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0)
         goto cleanup;
 
index cc300f0e83fa3cc27fb63d34e589a61d8c022ce1..9eff82c129d956a5f9972a7849ef4949b46e1b00 100644 (file)
@@ -2641,6 +2641,9 @@ static virDomainPtr testDomainDefineXMLFlags(virConnectPtr conn,
                                        NULL, parse_flags)) == NULL)
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", def->name, "\n") < 0)
+        goto cleanup;
+
     if (testDomainGenerateIfnames(def) < 0)
         goto cleanup;
     if (!(dom = virDomainObjListAdd(privconn->domains,
index 4f4a69be4a95b893e922f95d31c6cac385aa21d5..ad89e3ef7ff80aee141bd70fa72892f1d6400d54 100644 (file)
@@ -2074,6 +2074,9 @@ umlDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags)
                                         NULL, parse_flags)))
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", def->name, "\n") < 0)
+        goto cleanup;
+
     if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0)
         goto cleanup;
 
index 9a53b8da7b004d308d0870c3258ed92773fc8e3f..d3497bd2d58c0e754df6e9bc94af54494094fbc3 100644 (file)
@@ -392,6 +392,9 @@ vmwareDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int fla
                                          NULL, parse_flags)) == NULL)
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", vmdef->name, "\n") < 0)
+        goto cleanup;
+
     /* generate vmx file */
     vmx = virVMXFormatConfig(&ctx, driver->xmlopt, vmdef, 7);
     if (vmx == NULL)
index b2c3e31c5faabfe6abb99e25f5d293153f9b3f7b..08f79612359f4169bfeac243c77957bc16666467 100644 (file)
@@ -854,6 +854,9 @@ vzDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags)
                                        NULL, parse_flags)) == NULL)
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", def->name, "\n") < 0)
+        goto cleanup;
+
     if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0)
         goto cleanup;
 
index 188c2d1e25beed3b67e4b5fd941941b7cb71a4e2..3f9bfa7a6c38e3cf804a7cc35f58fe47166b839a 100644 (file)
@@ -1810,6 +1810,9 @@ xenUnifiedDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int
                                         NULL, parse_flags)))
         goto cleanup;
 
+    if (virXMLCheckIllegalChars("name", def->name, "\n") < 0)
+        goto cleanup;
+
     if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0)
         goto cleanup;
 
index dcb79aa713ae10697dbe9acb580a115c7c74b24b..a9ed407bc5d10cd9b5a762a0604b81c7e539fb2d 100644 (file)
@@ -1759,6 +1759,11 @@ xenapiDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int fla
     if (!defPtr)
         return NULL;
 
+    if (virXMLCheckIllegalChars("name", defPtr->name, "\n") < 0) {
+        virDomainDefFree(defPtr);
+        return NULL;
+    }
+
     if (createVMRecordFromXml(conn, defPtr, &record, &vm) != 0) {
         if (!priv->session->ok)
             xenapiSessionErrorHandler(conn, VIR_ERR_INTERNAL_ERROR, NULL);