summaryrefslogtreecommitdiffstats
path: root/cmd-attach-session.c
diff options
context:
space:
mode:
authornicm <nicm>2020-09-03 12:47:33 +0000
committernicm <nicm>2020-09-03 12:47:33 +0000
commiteadf18b9fa3f32ffd06be5dbca627047430bc01c (patch)
tree2608c1e6ce255ba16fc29a2d2d009d4c04d4c442 /cmd-attach-session.c
parente538bef7576456911cd8cf76d3e4ff2ef97bd671 (diff)
Do not free old session working directory until after expanding the new
one because it may be needed.
Diffstat (limited to 'cmd-attach-session.c')
-rw-r--r--cmd-attach-session.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/cmd-attach-session.c b/cmd-attach-session.c
index 38d9c024..6a7ebba7 100644
--- a/cmd-attach-session.c
+++ b/cmd-attach-session.c
@@ -59,7 +59,7 @@ cmd_attach_session(struct cmdq_item *item, const char *tflag, int dflag,
struct session *s;
struct winlink *wl;
struct window_pane *wp;
- char *cause;
+ char *cwd, *cause;
enum msgtype msgtype;
if (RB_EMPTY(&sessions)) {
@@ -99,8 +99,9 @@ cmd_attach_session(struct cmdq_item *item, const char *tflag, int dflag,
}
if (cflag != NULL) {
+ cwd = format_single(item, cflag, c, s, wl, wp);
free((void *)s->cwd);
- s->cwd = format_single(item, cflag, c, s, wl, wp);
+ s->cwd = cwd;
}
if (fflag)
server_client_set_flags(c, fflag);