chiark / gitweb /
sd-bus: fix use-after-free in close_kdbus_msg()
[elogind.git] / src / libsystemd / sd-bus / sd-bus.c
index 33b65aba72e30acf1881de19849a62b7a727edef..bc4376fb510533478871854717157729fa04c76c 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;