patch 8.0.1517: invalid memory acces with pattern using look-behind match
Problem: Invalid memory acces with pattern using look-behind match.
(Dominique Pelle)
Solution: Get a pointer to the right line.
diff --git a/src/regexp.c b/src/regexp.c
index d07391e..b1cad99 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -5585,9 +5585,14 @@
{
#ifdef FEAT_MBYTE
if (has_mbyte)
+ {
+ char_u *line =
+ reg_getline(behind_pos.rs_u.pos.lnum);
+
rp->rs_un.regsave.rs_u.pos.col -=
- (*mb_head_off)(regline, regline
+ (*mb_head_off)(line, line
+ rp->rs_un.regsave.rs_u.pos.col - 1) + 1;
+ }
else
#endif
--rp->rs_un.regsave.rs_u.pos.col;
diff --git a/src/version.c b/src/version.c
index 9e19833..931037d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1517,
+/**/
1516,
/**/
1515,