1
0
forked from aniani/vim

patch 8.2.1842: crash when USE_FNAME_CASE is defined and using :browse

Problem:    Crash when USE_FNAME_CASE is defined and using :browse.
Solution:   Don't use read-only memory for ".". (Yegappan Lakshmanan,
            closes #7123)
This commit is contained in:
Bram Moolenaar
2020-10-13 19:08:24 +02:00
parent 2b9b17ea5d
commit 21cbe175ee
4 changed files with 24 additions and 2 deletions

View File

@@ -2465,6 +2465,7 @@ do_ecmd(
bufref_T old_curbuf;
char_u *free_fname = NULL;
#ifdef FEAT_BROWSE
char_u dot_path[] = ".";
char_u *browse_file = NULL;
#endif
int retval = FAIL;
@@ -2511,7 +2512,7 @@ do_ecmd(
// No browsing supported but we do have the file explorer:
// Edit the directory.
if (ffname == NULL || !mch_isdir(ffname))
ffname = (char_u *)".";
ffname = dot_path;
}
else
{

View File

@@ -6084,6 +6084,7 @@ ex_splitview(exarg_T *eap)
char_u *fname = NULL;
#endif
#ifdef FEAT_BROWSE
char_u dot_path[] = ".";
int browse_flag = cmdmod.browse;
#endif
int use_tab = eap->cmdidx == CMD_tabedit
@@ -6136,7 +6137,7 @@ ex_splitview(exarg_T *eap)
// No browsing supported but we do have the file explorer:
// Edit the directory.
if (*eap->arg == NUL || !mch_isdir(eap->arg))
eap->arg = (char_u *)".";
eap->arg = dot_path;
}
else
{

View File

@@ -1805,4 +1805,22 @@ func Test_edit_lastline_scroll()
close!
endfunc
func Test_edit_browse()
" in the GUI this opens a file picker, we only test the terminal behavior
CheckNotGui
" ":browse xxx" checks for the FileExplorer augroup and assumes editing "."
" works then.
augroup FileExplorer
au!
augroup END
" When the USE_FNAME_CASE is defined this used to cause a crash.
browse enew
bwipe!
browse split
bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

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