From: Lennart Poettering Date: Sat, 21 Dec 2013 17:35:27 +0000 (+0100) Subject: driverd: properly handle NameHasOwner() for unique names X-Git-Tag: v209~763 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=050eb34da8bfe26ecdbda072ce945210279a9753;hp=908b8720b8df3044b2398f14e5ce0c9a0b1e07dd driverd: properly handle NameHasOwner() for unique names --- diff --git a/src/bus-driverd/bus-driverd.c b/src/bus-driverd/bus-driverd.c index b9c87d1bf..8dd3418f0 100644 --- a/src/bus-driverd/bus-driverd.c +++ b/src/bus-driverd/bus-driverd.c @@ -555,17 +555,17 @@ static int driver_list_queued_owners(sd_bus *bus, sd_bus_message *m, void *userd } static int driver_name_has_owner(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *error) { - char *arg0; + const char *name; int r; - r = sd_bus_message_read(m, "s", &arg0); + r = sd_bus_message_read(m, "s", &name); if (r < 0) return r; - assert_return(service_name_is_valid(arg0), -EINVAL); + assert_return(service_name_is_valid(name), -EINVAL); - r = sd_bus_get_owner(bus, arg0, 0, NULL); - if (r < 0 && r != -ENOENT) + r = sd_bus_get_owner(bus, name, 0, NULL); + if (r < 0 && r != -ENOENT && r != -ENXIO) return r; return sd_bus_reply_method_return(m, "b", r >= 0);