summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libsystemd/sd-bus/bus-control.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c
index a84b060b4f..39f4fc83a7 100644
--- a/src/libsystemd/sd-bus/bus-control.c
+++ b/src/libsystemd/sd-bus/bus-control.c
@@ -826,10 +826,8 @@ _public_ int sd_bus_get_owner_creds(sd_bus *bus, uint64_t mask, sd_bus_creds **r
if (!isempty(bus->label) && (mask & SD_BUS_CREDS_SELINUX_CONTEXT)) {
c->label = strdup(bus->label);
- if (!c->label) {
- sd_bus_creds_unref(c);
+ if (!c->label)
return -ENOMEM;
- }
c->mask |= SD_BUS_CREDS_SELINUX_CONTEXT;
}
@@ -852,13 +850,12 @@ _public_ int sd_bus_get_owner_creds(sd_bus *bus, uint64_t mask, sd_bus_creds **r
return r;
} else {
r = bus_creds_add_more(c, mask, pid, 0);
- if (r < 0) {
- sd_bus_creds_unref(c);
+ if (r < 0)
return r;
- }
}
*ret = c;
+ c = NULL;
return 0;
}