From: David Herrmann Date: Sun, 18 Jan 2015 12:54:46 +0000 (+0100) Subject: bus-proxy: fake all UIDs/GIDs, not just the real UID/GID X-Git-Tag: v219~458 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=e23f4bb525991c5908be0d0e7f8374c964d9996c;hp=d340f82032e4eb538e7b79087d95d5af1ae3dd91;ds=sidebyside bus-proxy: fake all UIDs/GIDs, not just the real UID/GID Make sure we tell the kernel to fake all UIDs/GIDs. Otherwise, the remote side has no chance of querying our effective UID (which is usually what they're interested in). --- diff --git a/src/bus-proxyd/proxy.c b/src/bus-proxyd/proxy.c index f7daec68f..329188ecf 100644 --- a/src/bus-proxyd/proxy.c +++ b/src/bus-proxyd/proxy.c @@ -82,13 +82,13 @@ static int proxy_create_dest(Proxy *p, const char *dest, const char *local_sec, b->fake_pids_valid = true; b->fake_creds.uid = p->local_creds.uid; - b->fake_creds.euid = UID_INVALID; - b->fake_creds.suid = UID_INVALID; - b->fake_creds.fsuid = 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.egid = GID_INVALID; - b->fake_creds.sgid = GID_INVALID; - b->fake_creds.fsgid = 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_valid = true; }