summaryrefslogtreecommitdiff
path: root/src/portable/portabled-image-bus.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2023-04-12 16:43:39 +0900
committerGitHub <noreply@github.com>2023-04-12 16:43:39 +0900
commitf643ca1767a52918c69c324f2ed6dbdfa005f04e (patch)
tree0a440c3cee3f0ac20fb9a94a98af5ebcef8c014e /src/portable/portabled-image-bus.c
parent82929336c77ee9e1b0056f25daa6a4210403d1b3 (diff)
parentf86a41291b6395b9fb74ccd74911ad7867d81dd9 (diff)
downloadsystemd-f643ca1767a52918c69c324f2ed6dbdfa005f04e.tar.gz
Merge pull request #27033 from dtardon/array-cleanup
Use CLEANUP_ARRAY more
Diffstat (limited to 'src/portable/portabled-image-bus.c')
-rw-r--r--src/portable/portabled-image-bus.c44
1 files changed, 18 insertions, 26 deletions
diff --git a/src/portable/portabled-image-bus.c b/src/portable/portabled-image-bus.c
index be8e65df3f..3c5833c653 100644
--- a/src/portable/portabled-image-bus.c
+++ b/src/portable/portabled-image-bus.c
@@ -316,6 +316,8 @@ int bus_image_common_attach(
assert(message);
assert(name_or_path || image);
+ CLEANUP_ARRAY(changes, n_changes, portable_changes_free);
+
if (!m) {
assert(image);
m = image->userdata;
@@ -390,13 +392,9 @@ int bus_image_common_attach(
&n_changes,
error);
if (r < 0)
- goto finish;
-
- r = reply_portable_changes(message, changes, n_changes);
+ return r;
-finish:
- portable_changes_free(changes, n_changes);
- return r;
+ return reply_portable_changes(message, changes, n_changes);
}
static int bus_image_method_attach(sd_bus_message *message, void *userdata, sd_bus_error *error) {
@@ -418,6 +416,8 @@ static int bus_image_method_detach(
assert(message);
+ CLEANUP_ARRAY(changes, n_changes, portable_changes_free);
+
if (sd_bus_message_is_method_call(message, NULL, "DetachWithExtensions")) {
r = sd_bus_message_read_strv(message, &extension_images);
if (r < 0)
@@ -470,13 +470,9 @@ static int bus_image_method_detach(
&n_changes,
error);
if (r < 0)
- goto finish;
-
- r = reply_portable_changes(message, changes, n_changes);
+ return r;
-finish:
- portable_changes_free(changes, n_changes);
- return r;
+ return reply_portable_changes(message, changes, n_changes);
}
int bus_image_common_remove(
@@ -648,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;
@@ -721,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),
@@ -734,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 */
@@ -742,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) {