1
0
forked from aniani/vim

patch 8.2.4282: restricted mode requires the -Z command line option

Problem:    Restricted mode requires the -Z command line option.
Solution:   Use restricted mode when $SHELL ends in "nologin" or "false".
            (closes #9681)
This commit is contained in:
matveyt
2022-02-01 17:26:12 +00:00
committed by Bram Moolenaar
parent 9b4a80a665
commit adbb1bf21d
4 changed files with 23 additions and 0 deletions

View File

@@ -307,6 +307,17 @@ set_init_1(int clean_arg)
*/
set_options_default(0);
#ifdef UNIX
// Force restricted-mode on for "nologin" or "false" $SHELL
p = get_isolated_shell_name();
if (p != NULL)
{
if (fnamecmp(p, "nologin") == 0 || fnamecmp(p, "false") == 0)
restricted = TRUE;
vim_free(p);
}
#endif
#ifdef CLEAN_RUNTIMEPATH
if (clean_arg)
{

View File

@@ -105,6 +105,14 @@ func Test_restricted_mode()
if RunVim([], [], '-Z --clean -S Xrestricted')
call assert_equal([], readfile('Xresult'))
endif
call delete('Xresult')
if has('unix') && RunVimPiped([], [], '--clean -S Xrestricted', 'SHELL=/bin/false ')
call assert_equal([], readfile('Xresult'))
endif
call delete('Xresult')
if has('unix') && RunVimPiped([], [], '--clean -S Xrestricted', 'SHELL=/sbin/nologin')
call assert_equal([], readfile('Xresult'))
endif
call delete('Xrestricted')
call delete('Xresult')

View File

@@ -746,6 +746,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4282,
/**/
4281,
/**/