X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbus-proxyd%2Fbus-proxyd.c;fp=src%2Fbus-proxyd%2Fbus-proxyd.c;h=15a79fc427946b7e5b6026792fa53d5aa948431e;hp=702f021a6bdcfed8df3082e4a7a53394b80fc546;hb=d3394ff47c6c60b6efb55be59e9e647ab82a857a;hpb=a8a1a43f482af480c375a97921df6b42452c7092 diff --git a/src/bus-proxyd/bus-proxyd.c b/src/bus-proxyd/bus-proxyd.c index 702f021a6..15a79fc42 100644 --- a/src/bus-proxyd/bus-proxyd.c +++ b/src/bus-proxyd/bus-proxyd.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -91,12 +92,19 @@ static int client_context_new(ClientContext **out, int fd) { static void *run_client(void *userdata) { _cleanup_(client_context_freep) ClientContext *c = userdata; _cleanup_(proxy_freep) Proxy *p = NULL; + char comm[16]; int r; r = proxy_new(&p, c->fd, c->fd, arg_address); if (r < 0) goto exit; + /* set comm to "p$PIDu$UID" and suffix with '*' if truncated */ + r = snprintf(comm, sizeof(comm), "p" PID_FMT "u" UID_FMT, p->local_creds.pid, p->local_creds.uid); + if (r >= (ssize_t)sizeof(comm)) + comm[sizeof(comm) - 2] = '*'; + (void) prctl(PR_SET_NAME, comm); + r = proxy_load_policy(p, arg_configuration); if (r < 0) goto exit;