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;