chiark / gitweb /
networkd: fix use-after-free
[elogind.git] / src / bus-driverd / bus-driverd.c
index 7df4b4c9b1c292a47885bb87105eeea69745d8c9..3284d625340dc8897082d78b73cfe53d991dffcc 100644 (file)
@@ -562,11 +562,9 @@ static int driver_list_queued_owners(sd_bus *bus, sd_bus_message *m, void *userd
                 if (asprintf(&n, ":1.%llu", (unsigned long long) name->owner_id) < 0)
                         return -ENOMEM;
 
-                r = strv_push(&owners, n);
-                if (r < 0) {
-                        free(n);
-                        return -ENOMEM;
-                }
+                r = strv_consume(&owners, n);
+                if (r < 0)
+                        return r;
         }
 
         r = ioctl(bus->input_fd, KDBUS_CMD_FREE, &cmd.offset);
@@ -776,11 +774,11 @@ static int driver_update_environment(sd_bus*bus, sd_bus_message *m, void *userda
 
         r = sd_bus_message_new_method_call(
                         bus,
+                        &msg,
                         "org.freedesktop.systemd1",
                         "/org/freedesktop/systemd1",
                         "org.freedesktop.systemd1.Manager",
-                        "SetEnvironment",
-                        &msg);
+                        "SetEnvironment");
         if (r < 0)
                 return r;