aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/regexp.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-07-21 14:40:32 +0200
committerGitHub <noreply@github.com>2019-07-21 14:40:32 +0200
commit9d0f8224c97b36116f3c0523bcf6941382892a5b (patch)
tree474781d9dd71c62ab9377faa1641321c173f1a85 /src/nvim/regexp.c
parentd20bbc802245cc14176028bf209ae3a7e81e21c4 (diff)
parenta63b95b315673354df9c42efcff248cacca45669 (diff)
downloadrneovim-9d0f8224c97b36116f3c0523bcf6941382892a5b.tar.gz
rneovim-9d0f8224c97b36116f3c0523bcf6941382892a5b.tar.bz2
rneovim-9d0f8224c97b36116f3c0523bcf6941382892a5b.zip
Merge #10555 from janlazo/vim-8.1.1720
vim-patch:8.1.{856,1720}
Diffstat (limited to 'src/nvim/regexp.c')
-rw-r--r--src/nvim/regexp.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c
index 8598da6376..eb1e565b1f 100644
--- a/src/nvim/regexp.c
+++ b/src/nvim/regexp.c
@@ -2058,10 +2058,14 @@ static char_u *regatom(int *flagp)
EMSG2_RET_NULL(_(e_missing_sb),
reg_magic == MAGIC_ALL);
br = regnode(BRANCH);
- if (ret == NULL)
+ if (ret == NULL) {
ret = br;
- else
+ } else {
regtail(lastnode, br);
+ if (reg_toolong) {
+ return NULL;
+ }
+ }
ungetchr();
one_exactly = TRUE;
@@ -2083,6 +2087,9 @@ static char_u *regatom(int *flagp)
for (br = ret; br != lastnode; ) {
if (OP(br) == BRANCH) {
regtail(br, lastbranch);
+ if (reg_toolong) {
+ return NULL;
+ }
br = OPERAND(br);
} else
br = regnext(br);