X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-bus%2Fsd-bus.c;h=28b993b7ba42b783d43b2df5839d49b1e86084f1;hb=f8c2425287c8362ae3a3c9acfb9e23a16862b38a;hp=78e91b96541809ef35e13d0b5edf0ac55ab8c890;hpb=9021bb9f935c93b516b10c88db2a212a9e3a8140;p=elogind.git diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c index 78e91b965..28b993b7b 100644 --- a/src/libsystemd/sd-bus/sd-bus.c +++ b/src/libsystemd/sd-bus/sd-bus.c @@ -349,8 +349,6 @@ static int hello_callback(sd_bus *bus, sd_bus_message *reply, void *userdata, sd assert(reply); r = sd_bus_message_get_errno(reply); - if (r < 0) - return r; if (r > 0) return -r; @@ -1756,7 +1754,7 @@ _public_ int sd_bus_call_async( if (!BUS_IS_OPEN(bus->state)) return -ENOTCONN; - r = hashmap_ensure_allocated(&bus->reply_callbacks, uint64_hash_func, uint64_compare_func); + r = hashmap_ensure_allocated(&bus->reply_callbacks, &uint64_hash_ops); if (r < 0) return r; @@ -3339,8 +3337,10 @@ _public_ int sd_bus_get_peer_creds(sd_bus *bus, uint64_t mask, sd_bus_creds **re } r = bus_creds_add_more(c, mask, pid, 0); - if (r < 0) + if (r < 0) { + sd_bus_creds_unref(c); return r; + } *ret = c; return 0;