[PATCH 2/2] qemu_migration: Don't mangle NBD part of migration cookie

Michal Privoznik mprivozn at redhat.com
Mon Oct 26 10:41:36 UTC 2020

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:

    <disk target='vda' capacity='8589934592'/>
    <disk target='vdb' capacity='12746752000'/>

Changing the incriminated line to print into the attributes
buffer fixes the problem.

Fixes: 518be41aaa3ebaac5f2307f268d24dc1b40b6b5c
Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
 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);

More information about the libvir-list mailing list