diff options
author | 2015-10-18 20:42:42 +0000 | |
---|---|---|
committer | 2015-10-18 20:42:42 +0000 | |
commit | 3c5719159325421b5e99d87dfc3891dd4cd727d0 (patch) | |
tree | a679b68b4ded5d9b4efb5a9eb3635d288bcd3f4f /usr.bin/tmux/server-client.c | |
parent | The change of 5.7's sys/arch/i386/i386/bus_space.c and (diff) | |
download | wireguard-openbsd-3c5719159325421b5e99d87dfc3891dd4cd727d0.tar.xz wireguard-openbsd-3c5719159325421b5e99d87dfc3891dd4cd727d0.zip |
Pass current directory as a string rather than a file descriptor because
pledge doesn't let us pass directory file descriptors.
Diffstat (limited to 'usr.bin/tmux/server-client.c')
-rw-r--r-- | usr.bin/tmux/server-client.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c index 332071d2b1c..fdf0d378776 100644 --- a/usr.bin/tmux/server-client.c +++ b/usr.bin/tmux/server-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: server-client.c,v 1.154 2015/09/16 22:24:54 nicm Exp $ */ +/* $OpenBSD: server-client.c,v 1.155 2015/10/18 20:42:43 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -1166,9 +1166,10 @@ server_client_msg_identify(struct client *c, struct imsg *imsg) c->ttyname = xstrdup(data); break; case MSG_IDENTIFY_CWD: - if (datalen != 0) - fatalx("bad MSG_IDENTIFY_CWD size"); - c->cwd = imsg->fd; + if (datalen == 0 || data[datalen - 1] != '\0') + fatalx("bad MSG_IDENTIFY_CWD string"); + if ((c->cwd = open(data, O_RDONLY)) == -1) + c->cwd = open("/", O_RDONLY); break; case MSG_IDENTIFY_STDIN: if (datalen != 0) |