summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/server-client.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2015-10-18 20:42:42 +0000
committernicm <nicm@openbsd.org>2015-10-18 20:42:42 +0000
commit3c5719159325421b5e99d87dfc3891dd4cd727d0 (patch)
treea679b68b4ded5d9b4efb5a9eb3635d288bcd3f4f /usr.bin/tmux/server-client.c
parentThe change of 5.7's sys/arch/i386/i386/bus_space.c and (diff)
downloadwireguard-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.c9
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)