1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-01 09:21:26 +03:00

sd-bus: split out cleanup into separate function

m is always non-null at this point. This function is too long anyway.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2014-10-03 19:47:47 -04:00
parent d267c5aa3d
commit 125dd07483

View File

@ -332,6 +332,18 @@ fail:
return r;
}
static void unset_memfds(struct sd_bus_message *m) {
struct bus_body_part *part;
unsigned i;
assert(m);
/* Make sure the memfds are not freed twice */
MESSAGE_FOREACH_PART(part, i, m)
if (part->memfd >= 0)
part->memfd = -1;
}
static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k) {
sd_bus_message *m = NULL;
struct kdbus_item *d;
@ -627,17 +639,8 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k) {
return 1;
fail:
if (m) {
struct bus_body_part *part;
unsigned i;
/* Make sure the memfds are not freed twice */
MESSAGE_FOREACH_PART(part, i, m)
if (part->memfd >= 0)
part->memfd = -1;
sd_bus_message_unref(m);
}
unset_memfds(m);
sd_bus_message_unref(m);
return r;
}