From 25b944e0678d40fae386b46e77fbc361360af368 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 30 Sep 2020 15:00:43 +0200 Subject: [PATCH] qemuMigrationCookieXMLParse: Check domain element count more defensively Make sure that 'virXPathNodeSet' returns '1' as the only expected value rather than relying on the fact that the previous check for the number of elements ensures success of the subsequent call. The error message no longer mentions the number of elements in the cookie, but this is a very unlikely internal error anyways. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/qemu/qemu_migration_cookie.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 5bd1746543..6f7d94bd2c 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -1212,7 +1212,6 @@ qemuMigrationCookieXMLParse(qemuMigrationCookiePtr mig, g_autofree char *hostuuid = NULL; char localdomuuid[VIR_UUID_STRING_BUFLEN]; xmlNodePtr *nodes = NULL; - int n; /* We don't store the uuid, name, hostname, or hostuuid * values. We just compare them to local data to do some @@ -1297,11 +1296,9 @@ qemuMigrationCookieXMLParse(qemuMigrationCookiePtr mig, if ((flags & QEMU_MIGRATION_COOKIE_PERSISTENT) && virXPathBoolean("count(./domain) > 0", ctxt)) { - if ((n = virXPathNodeSet("./domain", ctxt, &nodes)) > 1) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Too many domain elements in " - "migration cookie: %d"), - n); + if ((virXPathNodeSet("./domain", ctxt, &nodes)) != 1) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Too many domain elements in migration cookie")); goto error; } mig->persistent = virDomainDefParseNode(doc, nodes[0], -- 2.47.2