0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 9.0.1434: crash when adding package already in 'runtimepath'

Problem:    Crash when adding package already in 'runtimepath'.
Solution:   Change order for using 'runtimepath' entries. (closes #12215)
This commit is contained in:
zeertzjq 2023-04-01 13:52:03 +01:00 committed by Bram Moolenaar
parent 869113f376
commit 39c9ec16ea
3 changed files with 22 additions and 12 deletions

View File

@ -718,18 +718,6 @@ add_pack_dir_to_rtp(char_u *fname)
char_u *cur_entry = entry;
copy_option_part(&entry, buf, MAXPATHL, ",");
if (insp == NULL)
{
add_pathsep(buf);
rtp_ffname = fix_fname(buf);
if (rtp_ffname == NULL)
goto theend;
match = vim_fnamencmp(rtp_ffname, ffname, fname_len) == 0;
vim_free(rtp_ffname);
if (match)
// Insert "ffname" after this entry (and comma).
insp = entry;
}
if ((p = (char_u *)strstr((char *)buf, "after")) != NULL
&& p > buf
@ -743,6 +731,19 @@ add_pack_dir_to_rtp(char_u *fname)
after_insp = cur_entry;
break;
}
if (insp == NULL)
{
add_pathsep(buf);
rtp_ffname = fix_fname(buf);
if (rtp_ffname == NULL)
goto theend;
match = vim_fnamencmp(rtp_ffname, ffname, fname_len) == 0;
vim_free(rtp_ffname);
if (match)
// Insert "ffname" after this entry (and comma).
insp = entry;
}
}
if (insp == NULL)

View File

@ -21,6 +21,13 @@ func Test_packadd()
call mkdir(s:plugdir . '/plugin/also', 'p')
call mkdir(s:plugdir . '/ftdetect', 'p')
call mkdir(s:plugdir . '/after', 'p')
" This used to crash Vim
let &rtp = 'nosuchdir,' . s:plugdir . '/after'
packadd mytest
" plugdir should be inserted before plugdir/after
call assert_match('^nosuchdir,' . s:plugdir . ',', &rtp)
set rtp&
let rtp = &rtp
filetype on

View File

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