diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-02-13 16:35:06 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-02-13 16:35:06 +0100 |
commit | bc197195b097707d08fd44a476dbc374366504cb (patch) | |
tree | 0b5715c1de3f30c8b8a57f365619f5b526771e69 | |
parent | b3292fa2d362b064ff8a115fc0ad794c1f1265d7 (diff) |
patch 8.0.1517: invalid memory acces with pattern using look-behind matchv8.0.1517
Problem: Invalid memory acces with pattern using look-behind match.
(Dominique Pelle)
Solution: Get a pointer to the right line.
-rw-r--r-- | src/regexp.c | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/regexp.c b/src/regexp.c index d07391eefb..b1cad99c33 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -5585,9 +5585,14 @@ regmatch( { #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 9e1983342e..931037d3d3 100644 --- a/src/version.c +++ b/src/version.c @@ -772,6 +772,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1517, +/**/ 1516, /**/ 1515, |