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); |