In recent commit v6.8.0-135-g518be41aaa the formatting of NBD into migration cookie was moved into a separate function and with it it was switched from direct printing into the output buffer to virXMLFormatElement(). But there was a typo. The virXMLFormatElement() accepts two buffers on input, one for element attributes and another for child elements. Well, the line that was supposed to add NBD port into the attributes buffer printed the attribute directly into the output buffer which produced this mangled XML: <qemu-migration> port='49153'<nbd> <disk target='vda' capacity='8589934592'/> <disk target='vdb' capacity='12746752000'/> </nbd> </qemu-migration> Changing the incriminated line to print into the attributes buffer fixes the problem. Fixes: 518be41aaa3ebaac5f2307f268d24dc1b40b6b5c Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- src/qemu/qemu_migration_cookie.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 708c2cced7..39445ef8de 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -747,7 +747,7 @@ qemuMigrationCookieNBDXMLFormat(qemuMigrationCookieNBDPtr nbd, size_t i; if (nbd->port) - virBufferAsprintf(buf, " port='%d'", nbd->port); + virBufferAsprintf(&attrBuf, " port='%d'", nbd->port); for (i = 0; i < nbd->ndisks; i++) { virBufferEscapeString(&childBuf, "<disk target='%s'", nbd->disks[i].target); -- 2.26.2