diff options
author | Thomas Adam <thomas@xteddy.org> | 2015-10-31 10:01:12 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2015-10-31 10:01:12 +0000 |
commit | 17f6c3be8eeb0b67d07f916026dab918795c0317 (patch) | |
tree | 08a10a780a8de977d4452c10a7a9c03db1ae1702 /cmd-attach-session.c | |
parent | e8bb385d6d9d8a91b5fa78e906531afc02320b80 (diff) | |
parent | 01defc9f4965bb174e1d1295754d5a8695683054 (diff) | |
download | rtmux-17f6c3be8eeb0b67d07f916026dab918795c0317.tar.gz rtmux-17f6c3be8eeb0b67d07f916026dab918795c0317.tar.bz2 rtmux-17f6c3be8eeb0b67d07f916026dab918795c0317.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-attach-session.c')
-rw-r--r-- | cmd-attach-session.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/cmd-attach-session.c b/cmd-attach-session.c index c570358c..b339b890 100644 --- a/cmd-attach-session.c +++ b/cmd-attach-session.c @@ -51,9 +51,8 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag, struct window_pane *wp = NULL; const char *update; char *cause; - int fd; struct format_tree *ft; - char *cp; + char *cwd; if (RB_EMPTY(&sessions)) { cmdq_error(cmdq, "no sessions"); @@ -97,18 +96,17 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag, ft = format_create(); format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, NULL, NULL); - cp = format_expand(ft, cflag); + cwd = format_expand(ft, cflag); format_free(ft); - fd = open(cp, O_RDONLY|O_DIRECTORY); - free(cp); - if (fd == -1) { + if (access(cwd, X_OK) != 0) { + free((void *)cwd); cmdq_error(cmdq, "bad working directory: %s", strerror(errno)); return (CMD_RETURN_ERROR); } - close(s->cwd); - s->cwd = fd; + free((void *)s->cwd); + s->cwd = cwd; } if (c->session != NULL) { |