On 08/11/2016 12:02 PM, Michal Privoznik wrote: > Since ages filesystems allowed to have space characters in > filenames and even directory names. In fact, on all major > filesystems out there you can have whatever character you like > except NULL. There's no reason why we should forbid users to not > have spaces in their filenames. Moreover, if we do that only on > RNG schema level while our XML parser/formatter crunches that > happily. > There's a fedora bug about this particular issue: https://bugzilla.redhat.com/show_bug.cgi?id=1353296 But for example this range still rejects other valid characters as well, like unicode á . So maybe rather than a whitelist, we go the opposite way and make this a minimal blacklist, or drop the validation entirely. Unless there's some designated way to handle regex validation for unicode... - Cole > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > --- > docs/schemas/basictypes.rng | 8 ++--- > .../domainschemadata/domain-disk-source-space.xml | 36 ++++++++++++++++++++++ > 2 files changed, 40 insertions(+), 4 deletions(-) > create mode 100644 tests/domainschemadata/domain-disk-source-space.xml > > diff --git a/docs/schemas/basictypes.rng b/docs/schemas/basictypes.rng > index 474ad77..f2b7930 100644 > --- a/docs/schemas/basictypes.rng > +++ b/docs/schemas/basictypes.rng > @@ -247,25 +247,25 @@ > > <define name="filePath"> > <data type="string"> > - <param name="pattern">[a-zA-Z0-9_\.\+\-\\&"'<>/%]+</param> > + <param name="pattern">[a-zA-Z0-9_\.\+\-\\&"'<>/% ]+</param> > </data> > </define> > > <define name="dirPath"> > <data type="string"> > - <param name="pattern">[a-zA-Z0-9_\.\+\-\\&"'<>/%]+</param> > + <param name="pattern">[a-zA-Z0-9_\.\+\-\\&"'<>/% ]+</param> > </data> > </define> > > <define name="absFilePath"> > <data type="string"> > - <param name="pattern">/[a-zA-Z0-9_\.\+\-\\&"'<>/%,:]+</param> > + <param name="pattern">/[a-zA-Z0-9_\.\+\-\\&"'<>/%,: ]+</param> > </data> > </define> > > <define name="absDirPath"> > <data type="string"> > - <param name="pattern">/[a-zA-Z0-9_\.\+\-\\&"'<>/%]*</param> > + <param name="pattern">/[a-zA-Z0-9_\.\+\-\\&"'<>/% ]*</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 > index 0000000..553b6c7 > --- /dev/null > +++ b/tests/domainschemadata/domain-disk-source-space.xml > @@ -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> > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list