On 11/19/2010 09:15 AM, Cole Robinson wrote: > An incorrect check broke matching the closing set of quotes. Update > tests to cover this case for XM config files, and update the domain schema > to allow more path characters. > > - <param name="pattern">/[a-zA-Z0-9_\.\+\-&/%]*</param> > + <param name="pattern">/[a-zA-Z0-9_\.\+\-\\&"'<>/%]*</param> So far, so good... > </data> > </define> > <define name="devicePath"> > <data type="string"> > - <param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param> > + <param name="pattern">/[a-zA-Z0-9_\+\-\\&"'<>/%]+</param> but given that a devicePath can't have '.', should it really be allowed to have other characters like &, ", ', <, or >? > </data> > </define> > <define name="deviceName"> > <data type="string"> > - <param name="pattern">[a-zA-Z0-9_\.\-:/]+</param> > + <param name="pattern">[a-zA-Z0-9_\.\-\\&"'<>:/]+</param> Likewise for deviceName. > +++ b/src/util/conf.c > @@ -400,8 +400,9 @@ virConfParseString(virConfParserCtxtPtr ctxt) > ctxt->cur += 3; > base = ctxt->cur; > > + /* Find the ending triple quotes */ > while ((ctxt->cur + 2 < ctxt->end) && > - (STRPREFIX(ctxt->cur, "\"\"\""))) { > + !(STRPREFIX(ctxt->cur, "\"\"\""))) { Ah, the bug fix for patch 1. ACK to patch 1, then. > +++ b/tests/xmconfigdata/test-escape-paths.cfg > @@ -19,7 +19,7 @@ vnc = 1 > vncunused = 1 > vnclisten = "127.0.0.1" > vncpasswd = "123poi" > -disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso&test,hdc:cdrom,r" ] > +disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso&test,hdc:cdrom,r", """phy:/dev/HostVG/XenGuest'",hdb,w""" ] > vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000,type=ioemu" ] > parallel = "none" > serial = "none" > diff --git a/tests/xmconfigdata/test-escape-paths.xml b/tests/xmconfigdata/test-escape-paths.xml > index dabf492..13e6e29 100644 > --- a/tests/xmconfigdata/test-escape-paths.xml > +++ b/tests/xmconfigdata/test-escape-paths.xml > @@ -31,6 +31,11 @@ > <target dev='hdc' bus='ide'/> > <readonly/> > </disk> > + <disk type='block' device='disk'> > + <driver name='phy'/> > + <source dev='/dev/HostVG/XenGuest'"'/> Hmm; this really is a case of deviceName in the domain.rng schema. Are there really devices named with ' or " in the name? If so, then ACK to patch 2. If not, then it would be better to use <disk type='file'><source file='/.../XenGuest'"'/>, since that would pick up on absFilePath, which is more likely to match reality of having ' or " in the name. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list