From: Yu Watanabe Date: Tue, 15 Oct 2024 04:14:15 +0000 (+0900) Subject: machine: fix memleak in vl_method_list_images() X-Git-Tag: v257-rc1~222^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d1ac7d76b42cfceabb9a4c30b11283ec4b585c4e;p=thirdparty%2Fsystemd.git machine: fix memleak in vl_method_list_images() Fixes an issue in fb0ea6a6a36b5fa97e6c57d608bb9f7acb63c8b2. --- diff --git a/src/machine/machined-varlink.c b/src/machine/machined-varlink.c index bd5dbf7e671..4b167c8fac3 100644 --- a/src/machine/machined-varlink.c +++ b/src/machine/machined-varlink.c @@ -583,16 +583,18 @@ static int vl_method_list_images(sd_varlink *link, sd_json_variant *parameters, return r; if (p.image_name) { + _cleanup_(image_unrefp) Image *found = NULL; + if (!image_name_is_valid(p.image_name)) return sd_varlink_error_invalid_parameter_name(link, "name"); - r = image_find(IMAGE_MACHINE, p.image_name, /* root = */ NULL, &image); + r = image_find(IMAGE_MACHINE, p.image_name, /* root = */ NULL, &found); if (r == -ENOENT) return sd_varlink_error(link, "io.systemd.MachineImage.NoSuchImage", NULL); if (r < 0) return log_debug_errno(r, "Failed to find image: %m"); - return list_image_one_and_maybe_read_metadata(link, image, /* more = */ false, p.acquire_metadata); + return list_image_one_and_maybe_read_metadata(link, found, /* more = */ false, p.acquire_metadata); } if (!FLAGS_SET(flags, SD_VARLINK_METHOD_MORE))