Ignore default-shell (and use /bin/sh) if it invalid not just if it is

tmux itself, also refuse to set the option to something invalid in the
first place. GitHub issue 2120.
This commit is contained in:
nicm
2020-03-17 11:10:12 +00:00
parent fb396286ff
commit 115bb33257
5 changed files with 15 additions and 6 deletions

View File

@ -400,6 +400,8 @@ server_client_exec(struct client *c, const char *cmd)
shell = options_get_string(s->options, "default-shell");
else
shell = options_get_string(global_s_options, "default-shell");
if (!checkshell(shell))
shell = _PATH_BSHELL;
shellsize = strlen(shell) + 1;
msg = xmalloc(cmdsize + shellsize);
@ -2009,7 +2011,7 @@ server_client_dispatch_shell(struct client *c)
const char *shell;
shell = options_get_string(global_s_options, "default-shell");
if (*shell == '\0' || areshell(shell))
if (!checkshell(shell))
shell = _PATH_BSHELL;
proc_send(c->peer, MSG_SHELL, -1, shell, strlen(shell) + 1);