patch 8.2.4261: accessing invalid memory in a regular expression
Problem: Accessing invalid memory when a regular expression checks the
Visual area while matching in a string.
Solution: Do not try matching the Visual area in a string.
diff --git a/src/regexp.c b/src/regexp.c
index c9e781b..9505765 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -1267,8 +1267,8 @@
colnr_T cols;
colnr_T curswant;
- // Check if the buffer is the current buffer.
- if (rex.reg_buf != curbuf || VIsual.lnum == 0)
+ // Check if the buffer is the current buffer and not using a string.
+ if (rex.reg_buf != curbuf || VIsual.lnum == 0 || rex.reg_maxline == 0)
return FALSE;
if (VIsual_active)