hashmap_free_free(b->reply_callbacks);
prioq_free(b->reply_callbacks_prioq);
+ assert(b->match_callbacks.type == BUS_MATCH_ROOT);
bus_match_free(&b->match_callbacks);
hashmap_free_free(b->vtable_methods);
assert(reply);
r = sd_bus_message_get_errno(reply);
- if (r < 0)
- return r;
if (r > 0)
return -r;
#endif
} else {
#ifdef ENABLE_KDBUS
- asprintf(&b->address, KERNEL_USER_BUS_FMT, getuid());
+ int r;
+
+ r = asprintf(&b->address, KERNEL_USER_BUS_FMT, getuid());
+ if (r < 0)
+ return -ENOMEM;
#else
return -ECONNREFUSED;
#endif
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;
}
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;