summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/server-client.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2013-10-20 17:28:43 +0000
committernicm <nicm@openbsd.org>2013-10-20 17:28:43 +0000
commit8f73cf4eed9c7ae1718976b2986f09d01ae1cd35 (patch)
tree75e4bd80f6aada859b9662ee9a7e0468891815ce /usr.bin/tmux/server-client.c
parentInformational message on unpack start (diff)
downloadwireguard-openbsd-8f73cf4eed9c7ae1718976b2986f09d01ae1cd35.tar.xz
wireguard-openbsd-8f73cf4eed9c7ae1718976b2986f09d01ae1cd35.zip
Do not run any command line command from the client which starts the
server until after the configuration file completes. This prevents it racing against run-shell or if-shell in .tmux.conf that run in the background.
Diffstat (limited to 'usr.bin/tmux/server-client.c')
-rw-r--r--usr.bin/tmux/server-client.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c
index a1c41af0374..c27dcdf48fe 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.112 2013/10/11 08:07:12 nicm Exp $ */
+/* $OpenBSD: server-client.c,v 1.113 2013/10/20 17:28:43 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -155,8 +155,8 @@ server_client_lost(struct client *c)
free(c->ttyname);
free(c->term);
- evbuffer_free (c->stdin_data);
- evbuffer_free (c->stdout_data);
+ evbuffer_free(c->stdin_data);
+ evbuffer_free(c->stdout_data);
if (c->stderr_data != c->stdout_data)
evbuffer_free (c->stderr_data);
@@ -932,7 +932,10 @@ server_client_msg_command(struct client *c, struct imsg *imsg)
}
cmd_free_argv(argc, argv);
- cmdq_run(c->cmdq, cmdlist);
+ if (c != cfg_client || cfg_finished)
+ cmdq_run(c->cmdq, cmdlist);
+ else
+ cmdq_append(c->cmdq, cmdlist);
cmd_list_free(cmdlist);
return;