=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/server-client.c,v retrieving revision 1.106 retrieving revision 1.107 diff -c -r1.106 -r1.107 *** src/usr.bin/tmux/server-client.c 2013/10/10 12:12:54 1.106 --- src/usr.bin/tmux/server-client.c 2013/10/10 12:13:29 1.107 *************** *** 1,4 **** ! /* $OpenBSD: server-client.c,v 1.106 2013/10/10 12:12:54 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: server-client.c,v 1.107 2013/10/10 12:13:29 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott *************** *** 695,702 **** void server_client_check_exit(struct client *c) { - struct msg_exit_data exitdata; - if (!(c->flags & CLIENT_EXIT)) return; --- 695,700 ---- *************** *** 707,715 **** if (EVBUFFER_LENGTH(c->stderr_data) != 0) return; ! exitdata.retcode = c->retval; ! server_write_client(c, MSG_EXIT, &exitdata, sizeof exitdata); ! c->flags &= ~CLIENT_EXIT; } --- 705,711 ---- if (EVBUFFER_LENGTH(c->stderr_data) != 0) return; ! server_write_client(c, MSG_EXIT, &c->retval, sizeof c->retval); c->flags &= ~CLIENT_EXIT; } *************** *** 993,1008 **** void server_client_msg_shell(struct client *c) { ! struct msg_shell_data data; ! const char *shell; shell = options_get_string(&global_s_options, "default-shell"); - if (*shell == '\0' || areshell(shell)) shell = _PATH_BSHELL; ! if (strlcpy(data.shell, shell, sizeof data.shell) >= sizeof data.shell) ! strlcpy(data.shell, _PATH_BSHELL, sizeof data.shell); - server_write_client(c, MSG_SHELL, &data, sizeof data); c->flags |= CLIENT_BAD; /* it will die after exec */ } --- 989,1000 ---- void server_client_msg_shell(struct client *c) { ! const char *shell; shell = options_get_string(&global_s_options, "default-shell"); if (*shell == '\0' || areshell(shell)) shell = _PATH_BSHELL; ! server_write_client(c, MSG_SHELL, shell, strlen(shell) + 1); c->flags |= CLIENT_BAD; /* it will die after exec */ }