summaryrefslogtreecommitdiffstats
path: root/proc.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2022-03-08 14:01:11 +0000
committerThomas Adam <thomas@xteddy.org>2022-03-08 14:01:11 +0000
commit2fb6089e81e2bb9230cf802dbb1e7b24ab5e3054 (patch)
treef2b9cbbcdf9398a33240ddb1944e4760057c177f /proc.c
parent04952f15df1bc81d1878833533d344a6b1d1326c (diff)
parentad9b8059836d424f70a8579d28e28e0186cdbaa6 (diff)
Merge branch 'obsd-master' into master
Diffstat (limited to 'proc.c')
-rw-r--r--proc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/proc.c b/proc.c
index 958a9483..a9b1473e 100644
--- a/proc.c
+++ b/proc.c
@@ -56,6 +56,7 @@ struct tmuxpeer {
struct imsgbuf ibuf;
struct event event;
+ uid_t uid;
int flags;
#define PEER_BAD 0x1
@@ -308,6 +309,7 @@ proc_add_peer(struct tmuxproc *tp, int fd,
void (*dispatchcb)(struct imsg *, void *), void *arg)
{
struct tmuxpeer *peer;
+ gid_t gid;
peer = xcalloc(1, sizeof *peer);
peer->parent = tp;
@@ -318,6 +320,9 @@ proc_add_peer(struct tmuxproc *tp, int fd,
imsg_init(&peer->ibuf, fd);
event_set(&peer->event, fd, EV_READ, proc_event_cb, peer);
+ if (getpeereid(fd, &peer->uid, &gid) != 0)
+ peer->uid = (uid_t)-1;
+
log_debug("add peer %p: %d (%p)", peer, fd, arg);
TAILQ_INSERT_TAIL(&tp->peers, peer, entry);
@@ -373,3 +378,9 @@ proc_fork_and_daemon(int *fd)
return (pid);
}
}
+
+uid_t
+proc_get_peer_uid(struct tmuxpeer *peer)
+{
+ return (peer->uid);
+}