]> xenbits.xensource.com Git - xen.git/commitdiff
xl: properly dispose of vTPM struct instance
authorJan Beulich <jbeulich@suse.com>
Fri, 17 Jan 2025 07:53:50 +0000 (08:53 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 17 Jan 2025 07:53:50 +0000 (08:53 +0100)
The backend_domname field requires separate freeing; make sure to call
libxl_device_vtpm_dispose() also on respective error paths.

Coverity-ID: 1638719
Fixes: dde22055ac3a ("libxl: add vtpm support")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
tools/xl/xl_vtpm.c

index 0ba5041609c537f8a1b3745f17686e37fe9fae10..ef3e11f1ac55b0c6caec221eb6f87a6c6900b489 100644 (file)
@@ -44,12 +44,14 @@ int main_vtpmattach(int argc, char **argv)
         if (MATCH_OPTION("uuid", *argv, oparg)) {
             if(libxl_uuid_from_string(&(vtpm.uuid), oparg)) {
                 fprintf(stderr, "Invalid uuid specified (%s)\n", oparg);
+                libxl_device_vtpm_dispose(&vtpm);
                 return 1;
             }
         } else if (MATCH_OPTION("backend", *argv, oparg)) {
             replace_string(&vtpm.backend_domname, oparg);
         } else {
             fprintf(stderr, "unrecognized argument `%s'\n", *argv);
+            libxl_device_vtpm_dispose(&vtpm);
             return 1;
         }
     }
@@ -65,6 +67,7 @@ int main_vtpmattach(int argc, char **argv)
 
     if (libxl_device_vtpm_add(ctx, domid, &vtpm, 0)) {
         fprintf(stderr, "libxl_device_vtpm_add failed.\n");
+        libxl_device_vtpm_dispose(&vtpm);
         return 1;
     }
     libxl_device_vtpm_dispose(&vtpm);