From: Michal Privoznik Date: Wed, 5 Nov 2025 09:43:09 +0000 (+0100) Subject: domain_capabilities: Rework virDomainCapsCPUCustomFormat() X-Git-Tag: CVE-2025-12748~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=166fad633a5464ee0c17dceab9d02910af65f394;p=thirdparty%2Flibvirt.git domain_capabilities: Rework virDomainCapsCPUCustomFormat() Make the virDomainCapsCPUCustomFormat() function use virXMLFormatElement() family of functions. Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 5a94edf9bc..443e6dcd8e 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -447,35 +447,39 @@ virDomainCapsCPUCustomFormat(virBuffer *buf, size_t i; for (i = 0; i < custom->nmodels; i++) { + g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER; + g_auto(virBuffer) childBuf = VIR_BUFFER_INITIALIZER; virDomainCapsCPUModel *model = custom->models + i; - virBufferAsprintf(buf, "usable)); if (model->deprecated) - virBufferAddLit(buf, " deprecated='yes'"); + virBufferAddLit(&attrBuf, " deprecated='yes'"); if (model->vendor) - virBufferAsprintf(buf, " vendor='%s'", model->vendor); + virBufferAsprintf(&attrBuf, " vendor='%s'", model->vendor); else - virBufferAddLit(buf, " vendor='unknown'"); + virBufferAddLit(&attrBuf, " vendor='unknown'"); if (model->canonical) - virBufferAsprintf(buf, " canonical='%s'", model->canonical); + virBufferAsprintf(&attrBuf, " canonical='%s'", model->canonical); - virBufferAsprintf(buf, ">%s\n", model->name); + virBufferAddStr(&childBuf, model->name); + + virXMLFormatElementDirect(buf, "model", &attrBuf, &childBuf); if (model->blockers) { + g_auto(virBuffer) blockerAttrBuf = VIR_BUFFER_INITIALIZER; + g_auto(virBuffer) blockerChildBuf = VIR_BUFFER_INIT_CHILD(buf); char **blocker; - virBufferAsprintf(buf, "\n", model->name); - virBufferAdjustIndent(buf, 2); + virBufferAsprintf(&blockerAttrBuf, " model='%s'", model->name); for (blocker = model->blockers; *blocker; blocker++) - virBufferAsprintf(buf, "\n", *blocker); + virBufferAsprintf(&blockerChildBuf, "\n", *blocker); - virBufferAdjustIndent(buf, -2); - virBufferAddLit(buf, "\n"); + virXMLFormatElement(buf, "blockers", &blockerAttrBuf, &blockerChildBuf); } } }