summaryrefslogtreecommitdiff
path: root/src/libsystemd/sd-bus/bus-objects.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-04-19 11:28:36 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-04-23 12:23:15 +0200
commit2abda6d1e4a4f18a6033f865cf83d914a3f27e9e (patch)
tree43f87cac1304f16febd35f36618ae91ec6d43c5d /src/libsystemd/sd-bus/bus-objects.c
parent2caef9fba40069374f7312a7861f2f4ca04edd0b (diff)
downloadsystemd-2abda6d1e4a4f18a6033f865cf83d914a3f27e9e.tar.gz
sd-bus: use _cleanup_ for struct introspect
Diffstat (limited to 'src/libsystemd/sd-bus/bus-objects.c')
-rw-r--r--src/libsystemd/sd-bus/bus-objects.c41
1 files changed, 14 insertions, 27 deletions
diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
index 7053471d6d..650cee63af 100644
--- a/src/libsystemd/sd-bus/bus-objects.c
+++ b/src/libsystemd/sd-bus/bus-objects.c
@@ -894,7 +894,7 @@ static int process_introspect(
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
_cleanup_set_free_free_ Set *s = NULL;
const char *previous_interface = NULL;
- struct introspect intro;
+ _cleanup_(introspect_free) struct introspect intro = {};
struct node_vtable *c;
bool empty;
int r;
@@ -925,14 +925,10 @@ static int process_introspect(
continue;
r = node_vtable_get_userdata(bus, m->path, c, NULL, &error);
- if (r < 0) {
- r = bus_maybe_reply_error(m, r, &error);
- goto finish;
- }
- if (bus->nodes_modified) {
- r = 0;
- goto finish;
- }
+ if (r < 0)
+ return bus_maybe_reply_error(m, r, &error);
+ if (bus->nodes_modified)
+ return 0;
if (r == 0)
continue;
@@ -942,7 +938,6 @@ static int process_introspect(
continue;
if (!streq_ptr(previous_interface, c->interface)) {
-
if (previous_interface)
fputs(" </interface>\n", intro.f);
@@ -951,7 +946,7 @@ static int process_introspect(
r = introspect_write_interface(&intro, c->vtable);
if (r < 0)
- goto finish;
+ return r;
previous_interface = c->interface;
}
@@ -963,35 +958,27 @@ static int process_introspect(
/* Nothing?, let's see if we exist at all, and if not
* refuse to do anything */
r = bus_node_exists(bus, n, m->path, require_fallback);
- if (r <= 0) {
- r = bus_maybe_reply_error(m, r, &error);
- goto finish;
- }
- if (bus->nodes_modified) {
- r = 0;
- goto finish;
- }
+ if (r <= 0)
+ return bus_maybe_reply_error(m, r, &error);
+ if (bus->nodes_modified)
+ return 0;
}
*found_object = true;
r = introspect_write_child_nodes(&intro, s, m->path);
if (r < 0)
- goto finish;
+ return r;
r = introspect_finish(&intro, bus, m, &reply);
if (r < 0)
- goto finish;
+ return r;
r = sd_bus_send(bus, reply, NULL);
if (r < 0)
- goto finish;
-
- r = 1;
+ return r;
-finish:
- introspect_free(&intro);
- return r;
+ return 1;
}
static int object_manager_serialize_path(