summaryrefslogtreecommitdiffstats
path: root/src/match.c
diff options
context:
space:
mode:
authorChristian Brabandt <cb@256bit.org>2024-04-16 22:23:17 +0200
committerChristian Brabandt <cb@256bit.org>2024-04-16 22:23:17 +0200
commitf7d31adcc22eae852d6e7a5b59e9755ba7b51d35 (patch)
tree7dfcab9b1a01a58b7b284ae2347e0e5261a3fb60 /src/match.c
parent8560e6cf9797ea1d55ecaea6bf8ee8ec783c291a (diff)
patch 9.1.0340: Problem: Error with matchaddpos() and empty listv9.1.0340
Problem: Error with matchaddpos() and empty list (@rickhow) Solution: Return early for an empty list fixes: #14525 closes: #14563 Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/match.c')
-rw-r--r--src/match.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/match.c b/src/match.c
index f59c2066a1..bc50757b37 100644
--- a/src/match.c
+++ b/src/match.c
@@ -87,7 +87,7 @@ match_add(
m = ALLOC_CLEAR_ONE(matchitem_T);
if (m == NULL)
return -1;
- if (pos_list != NULL)
+ if (pos_list != NULL && pos_list->lv_len > 0)
{
m->mit_pos_array = ALLOC_CLEAR_MULT(llpos_T, pos_list->lv_len);
if (m->mit_pos_array == NULL)
@@ -1294,7 +1294,7 @@ f_matchaddpos(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
return;
}
l = argvars[1].vval.v_list;
- if (l == NULL)
+ if (l == NULL || l->lv_len == 0)
return;
if (argvars[2].v_type != VAR_UNKNOWN)