changeset 12694:514c1741ab8c v8.0.1225

patch 8.0.1225: no check for spell region being zero commit https://github.com/vim/vim/commit/ee03b941241eae1d36bc29b84eec09116cefe7cd Author: Bram Moolenaar <Bram@vim.org> Date: Fri Oct 27 00:57:05 2017 +0200 patch 8.0.1225: no check for spell region being zero Problem: No check for spell region being zero. (geeknik) Solution: Check for zero. (closes https://github.com/vim/vim/issues/2252)
author Christian Brabandt <cb@256bit.org>
date Fri, 27 Oct 2017 01:00:06 +0200
parents 78f24b9d1ceb
children ea24919085d3
files src/spellfile.c src/testdir/test_spell.vim src/version.c
diffstat 3 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/spellfile.c
+++ b/src/spellfile.c
@@ -4277,7 +4277,7 @@ spell_read_wordfile(spellinfo_T *spin, c
 		    flags |= WF_REGION;
 
 		    l = *p - '0';
-		    if (l > spin->si_region_count)
+		    if (l == 0 || l > spin->si_region_count)
 		    {
 			smsg((char_u *)_("Invalid region nr in %s line %d: %s"),
 							  fname, lnum, p);
--- a/src/testdir/test_spell.vim
+++ b/src/testdir/test_spell.vim
@@ -271,6 +271,15 @@ func Test_zz_sal_and_addition()
   call assert_equal("elekwint", SecondSpellWord())
 endfunc
 
+func Test_region_error()
+  messages clear
+  call writefile(["/regions=usgbnz", "elequint/0"], "Xtest.latin1.add")
+  mkspell! Xtest.latin1.add.spl Xtest.latin1.add
+  call assert_match('Invalid region nr in Xtest.latin1.add line 2: 0', execute('messages'))
+  call delete('Xtest.latin1.add')
+  call delete('Xtest.latin1.add.spl')
+endfunc
+
 " Check using z= in new buffer (crash fixed by patch 7.4a.028).
 func Test_zeq_crash()
   new
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1225,
+/**/
     1224,
 /**/
     1223,