Message ID | 73a01ddf-6090-4fda-a8c0-5703e7c9e81b@suse.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | xl: properly dispose of vTPM struct instance | expand |
On 14/01/2025 8:13 am, Jan Beulich wrote: > 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>
On 1/14/25 9:13 AM, Jan Beulich wrote: > 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> R-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com> Thanks. ~ Oleksii > > --- a/tools/xl/xl_vtpm.c > +++ b/tools/xl/xl_vtpm.c > @@ -44,12 +44,14 @@ int main_vtpmattach(int argc, char **arg > 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 **arg > > 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);
--- a/tools/xl/xl_vtpm.c +++ b/tools/xl/xl_vtpm.c @@ -44,12 +44,14 @@ int main_vtpmattach(int argc, char **arg 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 **arg 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);
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>