X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fbus-proxyd%2Fbus-proxyd.c;h=32c82422211f4fd6493a4969833103ec9e71e71a;hb=705a415f684f8e9ee19983e5859de00bbb1477cb;hp=7037301e4d956f0ecb2f700539a218c99aad2261;hpb=49d4b1eecfefded66fd48a992633958da30035d7;p=elogind.git diff --git a/src/bus-proxyd/bus-proxyd.c b/src/bus-proxyd/bus-proxyd.c index 7037301e4..32c824222 100644 --- a/src/bus-proxyd/bus-proxyd.c +++ b/src/bus-proxyd/bus-proxyd.c @@ -412,8 +412,6 @@ static int get_creds_by_name(sd_bus *bus, const char *name, uint64_t mask, sd_bu assert(name); assert(_creds); - assert_return(service_name_is_valid(name), -EINVAL); - r = sd_bus_get_name_creds(bus, name, mask, &c); if (r == -ESRCH || r == -ENXIO) return sd_bus_error_setf(error, SD_BUS_ERROR_NAME_HAS_NO_OWNER, "Name %s is currently not owned by anyone.", name); @@ -769,9 +767,6 @@ static int process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, Policy *polic if (r < 0) return synthetic_reply_method_errno(m, r, NULL); - if (!service_name_is_valid(arg0)) - return synthetic_reply_method_errno(m, -EINVAL, NULL); - r = sd_bus_get_name_creds(a, arg0, 0, NULL); if (r == -ESRCH || r == -ENXIO) { sd_bus_error_setf(&error, SD_BUS_ERROR_NAME_HAS_NO_OWNER, "Could not get owners of name '%s': no such name.", arg0); @@ -830,9 +825,6 @@ static int process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, Policy *polic if (r < 0) return synthetic_reply_method_errno(m, r, NULL); - if (!service_name_is_valid(name)) - return synthetic_reply_method_errno(m, -EINVAL, NULL); - if (streq(name, "org.freedesktop.DBus")) return synthetic_reply_method_return(m, "b", true); @@ -849,9 +841,6 @@ static int process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, Policy *polic if (r < 0) return synthetic_reply_method_errno(m, r, NULL); - if (!service_name_is_valid(name)) - return synthetic_reply_method_errno(m, -EINVAL, NULL); - r = sd_bus_release_name(a, name); if (r < 0) { if (r == -ESRCH) @@ -885,8 +874,6 @@ static int process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, Policy *polic if (policy && !policy_check_own(policy, ucred, name)) return synthetic_reply_method_errno(m, -EPERM, NULL); - if (!service_name_is_valid(name)) - return synthetic_reply_method_errno(m, -EINVAL, NULL); if ((flags & ~(BUS_NAME_ALLOW_REPLACEMENT|BUS_NAME_REPLACE_EXISTING|BUS_NAME_DO_NOT_QUEUE)) != 0) return synthetic_reply_method_errno(m, -EINVAL, NULL); @@ -927,8 +914,6 @@ static int process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, Policy *polic if (r < 0) return synthetic_reply_method_errno(m, r, NULL); - if (!service_name_is_valid(name)) - return synthetic_reply_method_errno(m, -EINVAL, NULL); if (flags != 0) return synthetic_reply_method_errno(m, -EINVAL, NULL); @@ -1257,9 +1242,17 @@ int main(int argc, char *argv[]) { } if (ucred.pid > 0) { - a->fake_creds.pid = ucred.pid; + a->fake_pids.pid = ucred.pid; + a->fake_pids_valid = true; + a->fake_creds.uid = ucred.uid; + a->fake_creds.euid = (uid_t) -1; + a->fake_creds.suid = (uid_t) -1; + a->fake_creds.fsuid = (uid_t) -1; a->fake_creds.gid = ucred.gid; + a->fake_creds.egid = (gid_t) -1; + a->fake_creds.sgid = (gid_t) -1; + a->fake_creds.fsgid = (gid_t) -1; a->fake_creds_valid = true; }