Permalink
Browse files

patch 8.0.0398: illegal memory access with "t"

Problem:    Illegal memory access with "t".
Solution:   Use strncmp() instead of memcmp(). (Dominique Pelle, closes #1528)
  • Loading branch information...
brammool committed Mar 1, 2017
1 parent 5a66dfb commit 66727e16079fbac6db3897b5c3736ec9fba995bb
Showing with 11 additions and 5 deletions.
  1. +2 −5 src/search.c
  2. +7 −0 src/testdir/test_search.vim
  3. +2 −0 src/version.c
View
@@ -1693,12 +1693,9 @@ searchc(cmdarg_T *cap, int t_cmd)
if (p[col] == c && stop)
break;
}
- else
- {
- if (memcmp(p + col, lastc_bytes, lastc_bytelen) == 0
+ else if (STRNCMP(p + col, lastc_bytes, lastc_bytelen) == 0
&& stop)
- break;
- }
+ break;
stop = TRUE;
}
}
@@ -294,3 +294,10 @@ func Test_searchpair()
q!
endfunc
+func Test_searchc()
+ " These commands used to cause memory overflow in searchc().
+ new
+ norm ixx
+ exe "norm 0t\u93cf"
+ bw!
+endfunc
View
@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 398,
/**/
397,
/**/

0 comments on commit 66727e1

Please sign in to comment.