diff options
author | cztchoice <cztchoice@gmail.com> | 2015-07-12 08:09:24 +0800 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2015-07-11 22:38:17 -0400 |
commit | c80ebfff82d539d44815b1d36709ba573e4e38e8 (patch) | |
tree | b7fed1b34cfe6ab2ec124afc6e95fbfd9eacdee9 /src | |
parent | 366aa8c1963fadabc164e823b6ba758759a30178 (diff) | |
download | rneovim-c80ebfff82d539d44815b1d36709ba573e4e38e8.tar.gz rneovim-c80ebfff82d539d44815b1d36709ba573e4e38e8.tar.bz2 rneovim-c80ebfff82d539d44815b1d36709ba573e4e38e8.zip |
vim-patch:7.4.736 #2998
Problem: Invalid memory access.
Solution: Avoid going over the end of a NUL terminated string. (Dominique
Pelle)
https://github.com/vim/vim/commit/v7-4-736
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/regexp.c | 9 | ||||
-rw-r--r-- | src/nvim/version.c | 42 |
2 files changed, 46 insertions, 5 deletions
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c index dddd347822..3ae3f46db3 100644 --- a/src/nvim/regexp.c +++ b/src/nvim/regexp.c @@ -1104,7 +1104,7 @@ static int get_coll_element(char_u **pp) int l = 1; char_u *p = *pp; - if (p[1] == '.') { + if (p[0] != NUL && p[1] == '.') { if (has_mbyte) l = (*mb_ptr2len)(p + 2); if (p[l + 2] == '.' && p[l + 3] == ']') { @@ -1156,8 +1156,9 @@ static char_u *skip_anyof(char_u *p) else if (*p == '[') { if (get_char_class(&p) == CLASS_NONE && get_equi_class(&p) == 0 - && get_coll_element(&p) == 0) - ++p; /* It was not a class name */ + && get_coll_element(&p) == 0 + && *p != NUL) + ++p; /* It is not a class name and not NUL */ } else ++p; } @@ -2848,7 +2849,7 @@ static int peekchr(void) /* * META contains everything that may be magic sometimes, * except ^ and $ ("\^" and "\$" are only magic after - * "\v"). We now fetch the next character and toggle its + * "\V"). We now fetch the next character and toggle its * magicness. Therefore, \ is so meta-magic that it is * not in META. */ diff --git a/src/nvim/version.c b/src/nvim/version.c index 757fdf385c..930048af6e 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -71,9 +71,49 @@ static char *features[] = { // clang-format off static int included_patches[] = { + //778, + //777, + //776, + //775, + //774, + //773, + //772, + //771, + //770, + //769, + //768, + //767, + //766, + //765, + //764, + //763, + //762, + //761, + //760, + //759, + //758, + //757, + //756, + //755, + //754, + //753, + //752, + //751, + //750, + //749, + //748, + //747, + //746, + //745, + //744, + //743, + //742, + //741, + //740, + //739, //738 NA //737, - //736, + 736, //735, //734, //733, |