]> granicus.if.org Git - vim/commitdiff
patch 8.1.1709: Coverity warns for possibly using a NULL pointer v8.1.1709
authorBram Moolenaar <Bram@vim.org>
Wed, 17 Jul 2019 19:37:32 +0000 (21:37 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 17 Jul 2019 19:37:32 +0000 (21:37 +0200)
Problem:    Coverity warns for possibly using a NULL pointer.
Solution:   Make sure no NULL pointer is used.

src/popupwin.c
src/testdir/test_popupwin.vim
src/version.c

index 322537bf87111374c390541994b1dfd3cc4d0440..f9775172620d01afa903a8279672540185601892 100644 (file)
@@ -516,7 +516,7 @@ apply_general_options(win_T *wp, dict_T *dict)
     di = dict_find(dict, (char_u *)"borderhighlight", -1);
     if (di != NULL)
     {
-       if (di->di_tv.v_type != VAR_LIST)
+       if (di->di_tv.v_type != VAR_LIST || di->di_tv.vval.v_list == NULL)
            emsg(_(e_listreq));
        else
        {
@@ -524,17 +524,16 @@ apply_general_options(win_T *wp, dict_T *dict)
            listitem_T  *li;
            int         i;
 
-           if (list != NULL)
-               for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len;
-                                                        ++i, li = li->li_next)
-               {
-                   str = tv_get_string(&li->li_tv);
-                   if (*str != NUL)
-                       wp->w_border_highlight[i] = vim_strsave(str);
-               }
+           for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len;
+                                                    ++i, li = li->li_next)
+           {
+               str = tv_get_string(&li->li_tv);
+               if (*str != NUL)
+                   wp->w_border_highlight[i] = vim_strsave(str);
+           }
            if (list->lv_len == 1 && wp->w_border_highlight[0] != NULL)
                for (i = 1; i < 4; ++i)
-                       wp->w_border_highlight[i] =
+                   wp->w_border_highlight[i] =
                                        vim_strsave(wp->w_border_highlight[0]);
        }
     }
index 26d1c94ae10845bb3d6b3e785543470a513cde70..740ac61396f73d9e0e235f604aa507f88fc02906 100644 (file)
@@ -634,6 +634,8 @@ func Test_popup_invalid_arguments()
   call popup_clear()
   call assert_fails('call popup_create("text", #{borderhighlight: "none"})', 'E714:')
   call popup_clear()
+  call assert_fails('call popup_create("text", #{borderhighlight: test_null_list()})', 'E714:')
+  call popup_clear()
   call assert_fails('call popup_create("text", #{borderchars: "none"})', 'E714:')
   call popup_clear()
 
index d1f5eba6b2fd563eeaca428d10b0a2841ec131dd..0ac981ed7a74cb8a760165320a7395a1bf2f2372 100644 (file)
@@ -777,6 +777,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1709,
 /**/
     1708,
 /**/