X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fbus-driverd%2Fbus-driverd.c;h=d6dec5dc2a7e85c5f4943ffcb03a3a36fd8875d9;hb=85feb8e4d9b0ef65c338e1a1a16665d0cb8d544a;hp=b9c87d1bf33f332bc32cb6c6a7b30222b5ad5319;hpb=908b8720b8df3044b2398f14e5ce0c9a0b1e07dd;p=elogind.git diff --git a/src/bus-driverd/bus-driverd.c b/src/bus-driverd/bus-driverd.c index b9c87d1bf..d6dec5dc2 100644 --- a/src/bus-driverd/bus-driverd.c +++ b/src/bus-driverd/bus-driverd.c @@ -537,7 +537,7 @@ static int driver_list_queued_owners(sd_bus *bus, sd_bus_message *m, void *userd if (!streq(name->name, arg0)) continue; - if (asprintf(&n, ":1.%llu", (unsigned long long) name->id) < 0) + if (asprintf(&n, ":1.%llu", (unsigned long long) name->owner_id) < 0) return -ENOMEM; r = strv_push(&owners, n); @@ -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); @@ -599,7 +599,7 @@ static int driver_request_name(sd_bus *bus, sd_bus_message *m, void *userdata, s if (r < 0) return r; - n->id = id; + n->owner_id = id; r = ioctl(bus->input_fd, KDBUS_CMD_NAME_ACQUIRE, n); if (r < 0) { @@ -642,7 +642,7 @@ static int driver_release_name(sd_bus *bus, sd_bus_message *m, void *userdata, s if (r < 0) return r; - n->id = id; + n->owner_id = id; r = ioctl(bus->input_fd, KDBUS_CMD_NAME_RELEASE, n); if (r < 0) { @@ -694,7 +694,7 @@ static int driver_start_service_by_name(sd_bus *bus, sd_bus_message *m, void *us if (r < 0) return r; - if (!t[0] || t[1]) + if (!t || !t[0] || t[1]) return -EIO; r = sd_bus_call_method(