Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP3:GA
libvirt.11107
fef3a810-qemu-escape-smbios-strings.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fef3a810-qemu-escape-smbios-strings.patch of Package libvirt.11107
commit fef3a810c7cc50bfc7ad274e5d658d96d2db6698 Author: Peter Krempa <pkrempa@redhat.com> Date: Mon Oct 10 06:26:50 2016 +0200 qemu: command: escape smbios entry strings We pass free-form strings from the users to qemu, thus we need escape commas since they are passed to qemu monitor. Partially resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1373535 Index: libvirt-2.0.0/src/qemu/qemu_command.c =================================================================== --- libvirt-2.0.0.orig/src/qemu/qemu_command.c +++ libvirt-2.0.0/src/qemu/qemu_command.c @@ -5473,17 +5473,25 @@ static char *qemuBuildSmbiosBiosStr(virS virBufferAddLit(&buf, "type=0"); /* 0:Vendor */ - if (def->vendor) - virBufferAsprintf(&buf, ",vendor=%s", def->vendor); + if (def->vendor) { + virBufferAddLit(&buf, ",vendor="); + qemuBufferEscapeComma(&buf, def->vendor); + } /* 0:BIOS Version */ - if (def->version) - virBufferAsprintf(&buf, ",version=%s", def->version); + if (def->version) { + virBufferAddLit(&buf, ",version="); + qemuBufferEscapeComma(&buf, def->version); + } /* 0:BIOS Release Date */ - if (def->date) - virBufferAsprintf(&buf, ",date=%s", def->date); + if (def->date) { + virBufferAddLit(&buf, ",date="); + qemuBufferEscapeComma(&buf, def->date); + } /* 0:System BIOS Major Release and 0:System BIOS Minor Release */ - if (def->release) - virBufferAsprintf(&buf, ",release=%s", def->release); + if (def->release) { + virBufferAddLit(&buf, ",release="); + qemuBufferEscapeComma(&buf, def->release); + } if (virBufferCheckError(&buf) < 0) goto error; @@ -5509,27 +5517,40 @@ static char *qemuBuildSmbiosSystemStr(vi virBufferAddLit(&buf, "type=1"); /* 1:Manufacturer */ - if (def->manufacturer) - virBufferAsprintf(&buf, ",manufacturer=%s", - def->manufacturer); + if (def->manufacturer) { + virBufferAddLit(&buf, ",manufacturer="); + qemuBufferEscapeComma(&buf, def->manufacturer); + } /* 1:Product Name */ - if (def->product) - virBufferAsprintf(&buf, ",product=%s", def->product); + if (def->product) { + virBufferAddLit(&buf, ",product="); + qemuBufferEscapeComma(&buf, def->product); + } /* 1:Version */ - if (def->version) - virBufferAsprintf(&buf, ",version=%s", def->version); + if (def->version) { + virBufferAddLit(&buf, ",version="); + qemuBufferEscapeComma(&buf, def->version); + } /* 1:Serial Number */ - if (def->serial) - virBufferAsprintf(&buf, ",serial=%s", def->serial); + if (def->serial) { + virBufferAddLit(&buf, ",serial="); + qemuBufferEscapeComma(&buf, def->serial); + } /* 1:UUID */ - if (def->uuid && !skip_uuid) - virBufferAsprintf(&buf, ",uuid=%s", def->uuid); + if (def->uuid && !skip_uuid) { + virBufferAddLit(&buf, ",uuid="); + qemuBufferEscapeComma(&buf, def->uuid); + } /* 1:SKU Number */ - if (def->sku) - virBufferAsprintf(&buf, ",sku=%s", def->sku); + if (def->sku) { + virBufferAddLit(&buf, ",sku="); + qemuBufferEscapeComma(&buf, def->sku); + } /* 1:Family */ - if (def->family) - virBufferAsprintf(&buf, ",family=%s", def->family); + if (def->family) { + virBufferAddLit(&buf, ",family="); + qemuBufferEscapeComma(&buf, def->family); + } if (virBufferCheckError(&buf) < 0) goto error; @@ -5551,24 +5572,33 @@ static char *qemuBuildSmbiosBaseBoardStr virBufferAddLit(&buf, "type=2"); /* 2:Manufacturer */ - if (def->manufacturer) - virBufferAsprintf(&buf, ",manufacturer=%s", - def->manufacturer); + virBufferAddLit(&buf, ",manufacturer="); + qemuBufferEscapeComma(&buf, def->manufacturer); /* 2:Product Name */ - if (def->product) - virBufferAsprintf(&buf, ",product=%s", def->product); + if (def->product) { + virBufferAddLit(&buf, ",product="); + qemuBufferEscapeComma(&buf, def->product); + } /* 2:Version */ - if (def->version) - virBufferAsprintf(&buf, ",version=%s", def->version); + if (def->version) { + virBufferAddLit(&buf, ",version="); + qemuBufferEscapeComma(&buf, def->version); + } /* 2:Serial Number */ - if (def->serial) - virBufferAsprintf(&buf, ",serial=%s", def->serial); + if (def->serial) { + virBufferAddLit(&buf, ",serial="); + qemuBufferEscapeComma(&buf, def->serial); + } /* 2:Asset Tag */ - if (def->asset) - virBufferAsprintf(&buf, ",asset=%s", def->asset); + if (def->asset) { + virBufferAddLit(&buf, ",asset="); + qemuBufferEscapeComma(&buf, def->asset); + } /* 2:Location */ - if (def->location) - virBufferAsprintf(&buf, ",location=%s", def->location); + if (def->location) { + virBufferAddLit(&buf, ",location="); + qemuBufferEscapeComma(&buf, def->location); + } if (virBufferCheckError(&buf) < 0) goto error;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor