bus-proxy: don't fake data we don't have

UDS sockets transmit EUID+EGID only. Don't try to fake data we don't know!
Otherwise, this might be used to override user-limits by non-root setuid
programs (by faking UID==EUID).

Now that sd-bus is fixed to always use EUID even on UDS, we can safely set
all other UID/GID fields to INVALID.
This commit is contained in:
David Herrmann
2015-02-14 15:13:38 +01:00
parent 9cad100eca
commit d90c154eb1

View File

@@ -81,14 +81,14 @@ static int proxy_create_destination(Proxy *p, const char *destination, const cha
b->fake_pids.pid = p->local_creds.pid;
b->fake_pids_valid = true;
b->fake_creds.uid = p->local_creds.uid;
b->fake_creds.uid = UID_INVALID;
b->fake_creds.euid = p->local_creds.uid;
b->fake_creds.suid = p->local_creds.uid;
b->fake_creds.fsuid = p->local_creds.uid;
b->fake_creds.gid = p->local_creds.gid;
b->fake_creds.suid = UID_INVALID;
b->fake_creds.fsuid = UID_INVALID;
b->fake_creds.gid = GID_INVALID;
b->fake_creds.egid = p->local_creds.gid;
b->fake_creds.sgid = p->local_creds.gid;
b->fake_creds.fsgid = p->local_creds.gid;
b->fake_creds.sgid = GID_INVALID;
b->fake_creds.fsgid = GID_INVALID;
b->fake_creds_valid = true;
}