portabled-image-bus: use CLEANUP_ARRAY

This commit is contained in:
David Tardon
2023-04-11 16:32:48 +02:00
parent a5290effe8
commit f86a41291b
+10 -14
View File
@@ -644,6 +644,10 @@ int bus_image_common_reattach(
assert(message);
assert(name_or_path || image);
CLEANUP_ARRAY(changes_detached, n_changes_detached, portable_changes_free);
CLEANUP_ARRAY(changes_attached, n_changes_attached, portable_changes_free);
CLEANUP_ARRAY(changes_gone, n_changes_gone, portable_changes_free);
if (!m) {
assert(image);
m = image->userdata;
@@ -717,7 +721,7 @@ int bus_image_common_reattach(
&n_changes_detached,
error);
if (r < 0)
goto finish;
return r;
r = portable_attach(
sd_bus_message_get_bus(message),
@@ -730,7 +734,7 @@ int bus_image_common_reattach(
&n_changes_attached,
error);
if (r < 0)
goto finish;
return r;
/* We want to return the list of units really removed by the detach,
* and not added again by the attach */
@@ -738,22 +742,14 @@ int bus_image_common_reattach(
changes_detached, n_changes_detached,
&changes_gone, &n_changes_gone);
if (r < 0)
goto finish;
return r;
/* First, return the units that are gone (so that the caller can stop them)
* Then, return the units that are changed/added (so that the caller can
* start/restart/enable them) */
r = reply_portable_changes_pair(message,
changes_gone, n_changes_gone,
changes_attached, n_changes_attached);
if (r < 0)
goto finish;
finish:
portable_changes_free(changes_detached, n_changes_detached);
portable_changes_free(changes_attached, n_changes_attached);
portable_changes_free(changes_gone, n_changes_gone);
return r;
return reply_portable_changes_pair(message,
changes_gone, n_changes_gone,
changes_attached, n_changes_attached);
}
static int bus_image_method_reattach(sd_bus_message *message, void *userdata, sd_bus_error *error) {