forked from aniani/vim
patch 9.0.0240: crash when using ":mkspell" with an empty .dic file
Problem: Crash when using ":mkspell" with an empty .dic file. Solution: Check for an empty word tree.
This commit is contained in:
@@ -5585,10 +5585,12 @@ sug_filltree(spellinfo_T *spin, slang_T *slang)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Go through the whole case-folded tree, soundfold each word and put it
|
* Go through the whole case-folded tree, soundfold each word and put it
|
||||||
* in the trie.
|
* in the trie. Bail out if the tree is empty.
|
||||||
*/
|
*/
|
||||||
byts = slang->sl_fbyts;
|
byts = slang->sl_fbyts;
|
||||||
idxs = slang->sl_fidxs;
|
idxs = slang->sl_fidxs;
|
||||||
|
if (byts == NULL || idxs == NULL)
|
||||||
|
return FAIL;
|
||||||
|
|
||||||
arridx[0] = 0;
|
arridx[0] = 0;
|
||||||
curi[0] = 1;
|
curi[0] = 1;
|
||||||
|
@@ -1168,4 +1168,16 @@ def Test_spellfile_allow_at_character()
|
|||||||
delete('Xtest', 'rf')
|
delete('Xtest', 'rf')
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
|
" this was using a NULL pointer
|
||||||
|
func Test_mkspell_empty_dic()
|
||||||
|
call writefile(['1'], 'XtestEmpty.dic')
|
||||||
|
call writefile(['SOFOFROM abcd', 'SOFOTO ABCD', 'SAL CIA X'], 'XtestEmpty.aff')
|
||||||
|
mkspell! XtestEmpty.spl XtestEmpty
|
||||||
|
|
||||||
|
call delete('XtestEmpty.dic')
|
||||||
|
call delete('XtestEmpty.aff')
|
||||||
|
call delete('XtestEmpty.spl')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -731,6 +731,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
240,
|
||||||
/**/
|
/**/
|
||||||
239,
|
239,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user