chiark / gitweb /
sd-bus: sync kdbus.h (ABI break)
[elogind.git] / src / libsystemd / sd-bus / sd-bus.c
index 33b65aba72e30acf1881de19849a62b7a727edef..549f9e09433c7bf87ceb2d83ac908b5c78760671 100644 (file)
@@ -142,6 +142,7 @@ static void bus_free(sd_bus *b) {
         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);
@@ -349,8 +350,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;
 
@@ -1164,7 +1163,11 @@ int bus_set_address_user(sd_bus *b) {
 #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