diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2011-09-25 18:53:04 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2011-09-25 18:53:04 +0000 |
commit | e6a59c4bee6ab5da56e3ff6b27a5e16d868d638f (patch) | |
tree | 1931f001e5ce375bfde5717a5c1c4b5f4d784586 | |
parent | f14da260c8903a37215a220f4d22965f6fd1820b (diff) | |
download | rtmux-e6a59c4bee6ab5da56e3ff6b27a5e16d868d638f.tar.gz rtmux-e6a59c4bee6ab5da56e3ff6b27a5e16d868d638f.tar.bz2 rtmux-e6a59c4bee6ab5da56e3ff6b27a5e16d868d638f.zip |
Reject $SHELL if it is not a full path.
-rw-r--r-- | tmux.c | 4 | ||||
-rw-r--r-- | window.c | 2 |
2 files changed, 4 insertions, 2 deletions
@@ -98,7 +98,9 @@ getshell(void) int checkshell(const char *shell) { - if (shell == NULL || *shell == '\0' || areshell(shell)) + if (shell == NULL || *shell == '\0' || *shell != '/') + return (0); + if (areshell(shell)) return (0); if (access(shell, X_OK) != 0) return (0); @@ -697,7 +697,7 @@ window_pane_spawn(struct window_pane *wp, const char *cmd, const char *shell, if (*wp->cmd != '\0') { /* Set SHELL but only if it is currently not useful. */ shell = getenv("SHELL"); - if (shell == NULL || *shell == '\0' || areshell(shell)) + if (checkshell(shell)) setenv("SHELL", wp->shell, 1); execl(_PATH_BSHELL, "sh", "-c", wp->cmd, (char *) NULL); |