On Fri, Dec 03, 2010 at 02:56:14PM -0700, Eric Blake wrote:
> The log lists things like -smbios type=1,vendor="Red Hat", which
> is great for shell parsing, but not so great when you realize that
> execve() then passes those literal "" on as part of the command
> line argument, such that qemu sets SMBIOS with extra literal quotes.
Hum, I was afraid that QEmu parsing would fail in case of spaces if
there is no quote, but if you checked this, sure !
> src/qemu/qemu_conf.c | 20 ++++++++++----------
> tests/qemuxml2argvdata/qemuxml2argv-smbios.args | 2 +-
> 2 files changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
> index 925585a..8985241 100644
> --- a/src/qemu/qemu_conf.c
> +++ b/src/qemu/qemu_conf.c
> @@ -3622,16 +3622,16 @@ static char *qemuBuildSmbiosBiosStr(virSysinfoDefPtr
> def)
>
> /* 0:Vendor */
> if (def->bios_vendor)
> - virBufferVSprintf(&buf, ",vendor=\"%s\"", def->bios_vendor);
> + virBufferVSprintf(&buf, ",vendor=%s", def->bios_vendor);
> /* 0:BIOS Version */
> if (def->bios_version)
> - virBufferVSprintf(&buf, ",version=\"%s\"", def->bios_version);
> + virBufferVSprintf(&buf, ",version=%s", def->bios_version);
> /* 0:BIOS Release Date */
> if (def->bios_date)
> - virBufferVSprintf(&buf, ",date=\"%s\"", def->bios_date);
> + virBufferVSprintf(&buf, ",date=%s", def->bios_date);
> /* 0:System BIOS Major Release and 0:System BIOS Minor Release */
> if (def->bios_release)
> - virBufferVSprintf(&buf, ",release=\"%s\"", def->bios_release);
> + virBufferVSprintf(&buf, ",release=%s", def->bios_release);
>
> if (virBufferError(&buf)) {
> virReportOOMError();
> @@ -3658,23 +3658,23 @@ static char
> *qemuBuildSmbiosSystemStr(virSysinfoDefPtr def)
>
> /* 1:Manufacturer */
> if (def->system_manufacturer)
> - virBufferVSprintf(&buf, ",manufacturer=\"%s\"",
> + virBufferVSprintf(&buf, ",manufacturer=%s",
> def->system_manufacturer);
> /* 1:Product Name */
> if (def->system_product)
> - virBufferVSprintf(&buf, ",product=\"%s\"", def->system_product);
> + virBufferVSprintf(&buf, ",product=%s", def->system_product);
> /* 1:Version */
> if (def->system_version)
> - virBufferVSprintf(&buf, ",version=\"%s\"", def->system_version);
> + virBufferVSprintf(&buf, ",version=%s", def->system_version);
> /* 1:Serial Number */
> if (def->system_serial)
> - virBufferVSprintf(&buf, ",serial=\"%s\"", def->system_serial);
> + virBufferVSprintf(&buf, ",serial=%s", def->system_serial);
> /* 1:UUID */
> if (def->system_uuid)
> - virBufferVSprintf(&buf, ",uuid=\"%s\"", def->system_uuid);
> + virBufferVSprintf(&buf, ",uuid=%s", def->system_uuid);
> /* 1:SKU Number */
> if (def->system_sku)
> - virBufferVSprintf(&buf, ",sku=\"%s\"", def->system_sku);
> + virBufferVSprintf(&buf, ",sku=%s", def->system_sku);
>
> if (virBufferError(&buf)) {
> virReportOOMError();
> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-smbios.args
> b/tests/qemuxml2argvdata/qemuxml2argv-smbios.args
> index d5bd289..bd3ede4 100644
> --- a/tests/qemuxml2argvdata/qemuxml2argv-smbios.args
> +++ b/tests/qemuxml2argvdata/qemuxml2argv-smbios.args
> @@ -1 +1 @@
> -LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S
> -M pc -m 214 -smp 1 -smbios type=0,vendor="QEmu/KVM",version="0.13" -smbios
> type=1,manufacturer="Fedora",product="Virt-Manager",version="0.8.2-3.fc14",serial="32dfcb37-5af1-552b-357c-be8c3aa38310",uuid="c7a5fdbd-edaf-9455-926a-d65c16db1809"
> -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c
> -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
> +LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S
> -M pc -m 214 -smp 1 -smbios type=0,vendor=QEmu/KVM,version=0.13 -smbios
> type=1,manufacturer=Fedora,product=Virt-Manager,version=0.8.2-3.fc14,serial=32dfcb37-5af1-552b-357c-be8c3aa38310,uuid=c7a5fdbd-edaf-9455-926a-d65c16db1809
> -nographic -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c
> -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
ACK,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
[email protected] | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list