aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/screen.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-11-29 01:51:26 +0100
committerGitHub <noreply@github.com>2018-11-29 01:51:26 +0100
commit5a752c97d5294f4a69613db71adf9beb6a8f8790 (patch)
tree7483b993657af7aa07dd2cb3a3390bc0dbf40899 /src/nvim/screen.c
parent98eaf60a98d0dfec9b1addb2c4efb3655c095044 (diff)
downloadrneovim-5a752c97d5294f4a69613db71adf9beb6a8f8790.tar.gz
rneovim-5a752c97d5294f4a69613db71adf9beb6a8f8790.tar.bz2
rneovim-5a752c97d5294f4a69613db71adf9beb6a8f8790.zip
vim-patch:8.1.0098: segfault when pattern with \z() is very slow (#9283)
Problem: Segfault when pattern with \z() is very slow. Solution: Check for NULL regprog. Add "nfa_fail" to test_override() to be able to test this. Fix that 'searchhl' resets called_emsg. https://github.com/vim/vim/commit/bcf9442307075bac40d44328c8bf7ea21857b138 closes #8788
Diffstat (limited to 'src/nvim/screen.c')
-rw-r--r--src/nvim/screen.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index eb24e2af1c..e4485b4e2e 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -5603,6 +5603,7 @@ next_search_hl (
linenr_T l;
colnr_T matchcol;
long nmatched = 0;
+ int save_called_emsg = called_emsg;
if (shl->lnum != 0) {
/* Check for three situations:
@@ -5695,6 +5696,9 @@ next_search_hl (
shl->lnum += shl->rm.startpos[0].lnum;
break; /* useful match found */
}
+
+ // Restore called_emsg for assert_fails().
+ called_emsg = save_called_emsg;
}
}