# HG changeset patch # User Bram Moolenaar # Date 1563392705 -7200 # Node ID 73e81cd9e6cb423f2639a98eb82b61f16f8cefad # Parent 37a230c53b08707f25e6f0dd6236d3072ae543cb patch 8.1.1709: Coverity warns for possibly using a NULL pointer commit https://github.com/vim/vim/commit/403d090e39abdc741c1b2ec0a05361cffd348289 Author: Bram Moolenaar Date: Wed Jul 17 21:37:32 2019 +0200 patch 8.1.1709: Coverity warns for possibly using a NULL pointer Problem: Coverity warns for possibly using a NULL pointer. Solution: Make sure no NULL pointer is used. diff --git a/src/popupwin.c b/src/popupwin.c --- a/src/popupwin.c +++ b/src/popupwin.c @@ -516,7 +516,7 @@ apply_general_options(win_T *wp, dict_T 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 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]); } } diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -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() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -778,6 +778,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1709, +/**/ 1708, /**/ 1707,