From: Daniel Mack Date: Wed, 22 Oct 2014 20:06:53 +0000 (+0200) Subject: sd-bus: fix transition left-overs in sd_bus_get_owner_creds() X-Git-Tag: v217~153 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=505e77caa5cafce27b0dbfcf23e9b28315d167ae sd-bus: fix transition left-overs in sd_bus_get_owner_creds() sd_bus_get_owner_creds() was only halfly ported over to _cleanup_bus_creds_unref_. --- diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c index a84b060b4..39f4fc83a 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; }