patch 8.1.1707: Coverity warns for possibly using a NULL pointer
Problem: Coverity warns for possibly using a NULL pointer.
Solution: Change the logic to make sure no NULL pointer is used.
diff --git a/src/popupwin.c b/src/popupwin.c
index e61b793..322537b 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -587,14 +587,13 @@
di = dict_find(dict, (char_u *)"mask", -1);
if (di != NULL)
{
- int ok = TRUE;
+ int ok = FALSE;
- if (di->di_tv.v_type != VAR_LIST)
- ok = FALSE;
- else if (di->di_tv.vval.v_list != NULL)
+ if (di->di_tv.v_type == VAR_LIST && di->di_tv.vval.v_list != NULL)
{
listitem_T *li;
+ ok = TRUE;
for (li = di->di_tv.vval.v_list->lv_first; li != NULL;
li = li->li_next)
{
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 8b1ea1f..26d1c94 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -643,6 +643,10 @@
call popup_clear()
call assert_fails('call popup_create([#{text: "text", props: ["none"]}], {})', 'E715:')
call popup_clear()
+ call assert_fails('call popup_create("text", #{mask: ["asdf"]})', 'E475:')
+ call popup_clear()
+ call assert_fails('call popup_create("text", #{mask: test_null_list()})', 'E475:')
+ call popup_clear()
endfunc
func Test_win_execute_closing_curwin()
diff --git a/src/version.c b/src/version.c
index 573f741..b1187db 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1707,
+/**/
1706,
/**/
1705,