]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuMigrationCookieXMLParse: Avoid VIR_FREE when parsing lockstate
authorPeter Krempa <pkrempa@redhat.com>
Fri, 2 Oct 2020 08:11:03 +0000 (10:11 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 5 Oct 2020 13:58:53 +0000 (15:58 +0200)
Restructure the control-flow a bit using an temporary variable to avoid
the need to use VIR_FREE.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_migration_cookie.c

index c2274aa94cfc468a7cb13a1a176b12945a235582..e27fda8dd0c6f79f03d3c978c37be1541b1f6e80 100644 (file)
@@ -1215,15 +1215,18 @@ qemuMigrationCookieXMLParse(qemuMigrationCookiePtr mig,
 
     if ((flags & QEMU_MIGRATION_COOKIE_LOCKSTATE) &&
         virXPathBoolean("count(./lockstate) > 0", ctxt)) {
+        g_autofree char *lockState = NULL;
+
         mig->lockDriver = virXPathString("string(./lockstate[1]/@driver)", ctxt);
         if (!mig->lockDriver) {
             virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                            _("Missing lock driver name in migration cookie"));
             return -1;
         }
-        mig->lockState = virXPathString("string(./lockstate[1]/leases[1])", ctxt);
-        if (mig->lockState && STREQ(mig->lockState, ""))
-            VIR_FREE(mig->lockState);
+
+        lockState = virXPathString("string(./lockstate[1]/leases[1])", ctxt);
+        if (STRNEQ_NULLABLE(lockState, ""))
+            mig->lockState = g_steal_pointer(&lockState);
     }
 
     if ((flags & QEMU_MIGRATION_COOKIE_PERSISTENT) &&