chiark / gitweb /
Add set_consume which always takes ownership
[elogind.git] / src / libsystemd-bus / sd-bus.c
index c7511c32d2ee648d2d129222683cd89ca28be11a..7d6d848ec579bdc766e4e3fde15a9b54855b1ef6 100644 (file)
@@ -1841,13 +1841,9 @@ static int process_introspect(sd_bus *bus, sd_bus_message *m) {
                 if (p)
                         *p = 0;
 
-                r = set_put(s, a);
-                if (r < 0) {
-                        free(a);
-
-                        if (r != -EEXIST)
-                                return r;
-                }
+                r = set_consume(s, a);
+                if (r < 0 && r != -EEXIST)
+                        return r;
         }
 
         f = open_memstream(&introspection, &size);