assert_return(service_name_is_valid(arg0), -EINVAL);
r = sd_bus_get_owner(bus, arg0, SD_BUS_CREDS_SELINUX_CONTEXT, &creds);
+ if (r == -ENOENT)
+ return sd_bus_error_setf(error, SD_BUS_ERROR_NAME_HAS_NO_OWNER, "Name %s is currently not owned by anyone.", arg0);
if (r < 0)
return r;
assert_return(service_name_is_valid(arg0), -EINVAL);
r = sd_bus_get_owner(bus, arg0, SD_BUS_CREDS_PID, &creds);
+ if (r == -ENOENT)
+ return sd_bus_error_setf(error, SD_BUS_ERROR_NAME_HAS_NO_OWNER, "Name %s is currently not owned by anyone.", arg0);
if (r < 0)
return r;
assert_return(service_name_is_valid(arg0), -EINVAL);
r = sd_bus_get_owner(bus, arg0, SD_BUS_CREDS_UID, &creds);
+ if (r == -ENOENT)
+ return sd_bus_error_setf(error, SD_BUS_ERROR_NAME_HAS_NO_OWNER, "Name %s is currently not owned by anyone.", arg0);
if (r < 0)
return r;
assert_return(service_name_is_valid(arg0), -EINVAL);
r = sd_bus_get_owner(bus, arg0, SD_BUS_CREDS_UNIQUE_NAME, &creds);
+ if (r == -ENOENT)
+ return sd_bus_error_setf(error, SD_BUS_ERROR_NAME_HAS_NO_OWNER, "Name %s is currently not owned by anyone.", arg0);
if (r < 0)
return r;
static const sd_bus_vtable driver_vtable[] = {
SD_BUS_VTABLE_START(0),
- SD_BUS_METHOD("AddMatch", "s", NULL, driver_add_match, 0),
+ SD_BUS_METHOD("AddMatch", "s", NULL, driver_add_match, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetConnectionSELinuxSecurityContext", "s", "ay", driver_get_security_ctx, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetConnectionUnixProcessID", "s", "u", driver_get_pid, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetConnectionUnixUser", "s", "u", driver_get_user, SD_BUS_VTABLE_UNPRIVILEGED),