patch 8.2.3381: crash when using NULL list with sign functions
Problem: Crash when using NULL list with sign functions.
Solution: Handle a NULL list like an empty list. (issue #8260)
diff --git a/src/globals.h b/src/globals.h
index 6d9741b..b64e5cb 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1902,7 +1902,7 @@
#endif
#define FOR_ALL_LIST_ITEMS(l, li) \
- for ((li) = (l)->lv_first; (li) != NULL; (li) = (li)->li_next)
+ for ((li) = (l) == NULL ? NULL : (l)->lv_first; (li) != NULL; (li) = (li)->li_next)
// While executing a regexp and set to OPTION_MAGIC_ON or OPTION_MAGIC_OFF this
// overrules p_magic. Otherwise set to OPTION_MAGIC_NOT_SET.
diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim
index 738eebf..b77725c 100644
--- a/src/testdir/test_signs.vim
+++ b/src/testdir/test_signs.vim
@@ -2012,4 +2012,11 @@
call delete("Xsign")
endfunc
+func Test_sign_null_list()
+ eval test_null_list()->sign_define()
+ eval test_null_list()->sign_placelist()
+ eval test_null_list()->sign_undefine()
+ eval test_null_list()->sign_unplacelist()
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index e9a04e2..1fffa73 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3381,
+/**/
3380,
/**/
3379,