]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
schema: Don't validate paths
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 12 Aug 2016 08:52:30 +0000 (10:52 +0200)
committerCole Robinson <crobinso@redhat.com>
Wed, 10 May 2017 19:27:55 +0000 (15:27 -0400)
https://bugzilla.redhat.com/show_bug.cgi?id=1353296

On UNIX like systems there are no constraints on what characters
can be in file/dir names (except for NULL, obviously). Moreover,
some values that we think of as paths (e.g. disk source) are not
necessarily paths at all. For instance, some hypervisors take
that as an arbitrary identifier and corresponding file is then
looked up by hypervisor in its table. Instead of trying to fix
our regular expressions (and forgetting to include yet another
character there), lets drop the validation completely.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit c4b92f1a8a9cb64a2c4a9f0ed899ed8a7d95d935)

docs/schemas/basictypes.rng
tests/domainschemadata/domain-disk-source-space.xml [new file with mode: 0644]

index a83063afcc7f529693d4f1124ec2d41f147c32dc..12cab6a3ee5a91ee6d6cb5468cdd6c888129f2c2 100644 (file)
 
   <define name="filePath">
     <data type="string">
-      <param name="pattern">[a-zA-Z0-9_\.\+\-\\&amp;&quot;&apos;&lt;&gt;/%]+</param>
+      <param name="pattern">.+</param>
     </data>
   </define>
 
   <define name="dirPath">
     <data type="string">
-      <param name="pattern">[a-zA-Z0-9_\.\+\-\\&amp;&quot;&apos;&lt;&gt;/%]+</param>
+      <param name="pattern">.+</param>
     </data>
   </define>
 
   <define name="absFilePath">
     <data type="string">
-      <param name="pattern">/[a-zA-Z0-9_\.\+\-\\&amp;&quot;&apos;&lt;&gt;/%,:]+</param>
+      <param name="pattern">/.+</param>
     </data>
   </define>
 
   <define name="absDirPath">
     <data type="string">
-      <param name="pattern">/[a-zA-Z0-9_\.\+\-\\&amp;&quot;&apos;&lt;&gt;/%]*</param>
+      <param name="pattern">/.*</param>
     </data>
   </define>
 
diff --git a/tests/domainschemadata/domain-disk-source-space.xml b/tests/domainschemadata/domain-disk-source-space.xml
new file mode 100644 (file)
index 0000000..553b6c7
--- /dev/null
@@ -0,0 +1,36 @@
+<domain type='kvm'>
+  <name>dummy</name>
+  <uuid>aa86471a-e67b-41b1-8d7d-2dc37c2ac5ec</uuid>
+  <memory unit='KiB'>2097152</memory>
+  <currentMemory unit='KiB'>2097152</currentMemory>
+  <vcpu placement='static'>4</vcpu>
+  <os>
+    <type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type>
+  </os>
+  <features>
+    <acpi/>
+    <apic/>
+  </features>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <pm>
+    <suspend-to-mem enabled='no'/>
+    <suspend-to-disk enabled='no'/>
+  </pm>
+  <devices>
+    <emulator>/usr/bin/qemu-system-x86_64</emulator>
+    <disk type='file' device='cdrom'>
+      <driver name='qemu' type='raw'/>
+      <source file='/a/path/with some space in it.iso'/>
+      <target dev='hda' bus='ide'/>
+      <readonly/>
+      <boot order='1'/>
+      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+    </disk>
+    <controller type='pci' index='0' model='pci-root'/>
+    <controller type='ide' index='0'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+    </controller>
+  </devices>
+</domain>