mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
Fix Xen SEXPR generation to properly quote strings containing ()
* src/xen/sexpr.c: Ensure () are escaped in sexpr2string * tests/sexpr2xmldata/sexpr2xml-boot-grub.sexpr, tests/sexpr2xmldata/sexpr2xml-boot-grub.xml, tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr, tests/xml2sexprdata/xml2sexpr-boot-grub.xml: Data files to check escaping * tests/sexpr2xmltest.c, tests/xml2sexprtest.c: Add boot-grub escaping test case
This commit is contained in:
parent
4435f3c477
commit
3a092f3899
@ -244,7 +244,9 @@ sexpr2string(const struct sexpr * sexpr, char *buffer, size_t n_buffer)
|
|||||||
ret += tmp;
|
ret += tmp;
|
||||||
break;
|
break;
|
||||||
case SEXPR_VALUE:
|
case SEXPR_VALUE:
|
||||||
if (strchr(sexpr->u.value, ' '))
|
if (strchr(sexpr->u.value, ' ') ||
|
||||||
|
strchr(sexpr->u.value, ')') ||
|
||||||
|
strchr(sexpr->u.value, '('))
|
||||||
tmp = snprintf(buffer + ret, n_buffer - ret, "'%s'",
|
tmp = snprintf(buffer + ret, n_buffer - ret, "'%s'",
|
||||||
sexpr->u.value);
|
sexpr->u.value);
|
||||||
else
|
else
|
||||||
|
1
tests/sexpr2xmldata/sexpr2xml-boot-grub.sexpr
Normal file
1
tests/sexpr2xmldata/sexpr2xml-boot-grub.sexpr
Normal file
@ -0,0 +1 @@
|
|||||||
|
(domain (domid 6)(name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d2171f48fb2e068e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/usr/lib/xen/boot/pv-grub-x86_64.gz')(args '(hd0,0)/grub/menu.lst')))(device (vbd (dev 'xvda')(uname 'phy:/dev/MainVG/GuestVG')(mode 'w'))))
|
26
tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
Normal file
26
tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<domain type='xen' id='6'>
|
||||||
|
<name>pvtest</name>
|
||||||
|
<uuid>596a5d21-71f4-8fb2-e068-e2386a5c413e</uuid>
|
||||||
|
<memory>430080</memory>
|
||||||
|
<currentMemory>430080</currentMemory>
|
||||||
|
<vcpu>2</vcpu>
|
||||||
|
<os>
|
||||||
|
<type>linux</type>
|
||||||
|
<kernel>/usr/lib/xen/boot/pv-grub-x86_64.gz</kernel>
|
||||||
|
<cmdline>(hd0,0)/grub/menu.lst</cmdline>
|
||||||
|
</os>
|
||||||
|
<clock offset='utc'/>
|
||||||
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
<on_reboot>destroy</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
<disk type='block' device='disk'>
|
||||||
|
<driver name='phy'/>
|
||||||
|
<source dev='/dev/MainVG/GuestVG'/>
|
||||||
|
<target dev='xvda' bus='xen'/>
|
||||||
|
</disk>
|
||||||
|
<console type='pty'>
|
||||||
|
<target type='xen' port='0'/>
|
||||||
|
</console>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
@ -172,6 +172,8 @@ mymain(int argc, char **argv)
|
|||||||
DO_TEST("fv-net-ioemu", "fv-net-ioemu", 1);
|
DO_TEST("fv-net-ioemu", "fv-net-ioemu", 1);
|
||||||
DO_TEST("fv-net-netfront", "fv-net-netfront", 1);
|
DO_TEST("fv-net-netfront", "fv-net-netfront", 1);
|
||||||
|
|
||||||
|
DO_TEST("boot-grub", "boot-grub", 1);
|
||||||
|
|
||||||
virCapabilitiesFree(caps);
|
virCapabilitiesFree(caps);
|
||||||
|
|
||||||
return(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
|
return(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
|
||||||
|
1
tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr
Normal file
1
tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr
Normal file
@ -0,0 +1 @@
|
|||||||
|
(vm (name 'pvtest')(memory 420)(maxmem 420)(vcpus 2)(uuid '596a5d21-71f4-8fb2-e068-e2386a5c413e')(on_poweroff 'destroy')(on_reboot 'destroy')(on_crash 'destroy')(image (linux (kernel '/usr/lib/xen/boot/pv-grub-x86_64.gz')(args (hd0,0)/grub/menu.lst)))(device (vbd (dev 'xvda')(uname 'phy:/dev/MainVG/GuestLV')(mode 'w'))))
|
21
tests/xml2sexprdata/xml2sexpr-boot-grub.xml
Normal file
21
tests/xml2sexprdata/xml2sexpr-boot-grub.xml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<domain type='xen' id='15'>
|
||||||
|
<name>pvtest</name>
|
||||||
|
<uuid>596a5d2171f48fb2e068e2386a5c413e</uuid>
|
||||||
|
<os>
|
||||||
|
<type>linux</type>
|
||||||
|
<kernel>/usr/lib/xen/boot/pv-grub-x86_64.gz</kernel>
|
||||||
|
<cmdline>(hd0,0)/grub/menu.lst</cmdline>
|
||||||
|
</os>
|
||||||
|
<memory>430080</memory>
|
||||||
|
<vcpu>2</vcpu>
|
||||||
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
<on_reboot>destroy</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<devices>
|
||||||
|
<disk type='block' device='disk'>
|
||||||
|
<source dev='/dev/MainVG/GuestLV'/>
|
||||||
|
<target dev='xvda'/>
|
||||||
|
</disk>
|
||||||
|
<console tty='/dev/pts/4'/>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
@ -161,6 +161,8 @@ mymain(int argc, char **argv)
|
|||||||
DO_TEST("fv-net-ioemu", "fv-net-ioemu", "fvtest", 1);
|
DO_TEST("fv-net-ioemu", "fv-net-ioemu", "fvtest", 1);
|
||||||
DO_TEST("fv-net-netfront", "fv-net-netfront", "fvtest", 1);
|
DO_TEST("fv-net-netfront", "fv-net-netfront", "fvtest", 1);
|
||||||
|
|
||||||
|
DO_TEST("boot-grub", "boot-grub", "fvtest", 1);
|
||||||
|
|
||||||
virCapabilitiesFree(caps);
|
virCapabilitiesFree(caps);
|
||||||
|
|
||||||
return(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
|
return(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
|
||||||
|
Loading…
Reference in New Issue
Block a user