Skip to content

Commit

Permalink
patch 9.1.0429: Coverity complains about eval.c refactor
Browse files Browse the repository at this point in the history
Problem:  Coverity complains about eval.c refactor
          (after v9.1.0422)
Solution: Check that buf is not used un-initialized,
          add explicit conditions for save and restore
          of copyID

Signed-off-by: Christian Brabandt <[email protected]>
  • Loading branch information
chrisbra committed May 21, 2024
1 parent 42cd192 commit b335a93
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/eval.c
Original file line number Diff line number Diff line change
Expand Up @@ -6499,7 +6499,7 @@ func_tv2string(typval_T *tv, char_u **tofree, int echo_style)
r = tv->vval.v_string == NULL ? (char_u *)"function()"
: make_ufunc_name_readable(tv->vval.v_string,
buf, MAX_FUNC_NAME_LEN);
if (r == buf)
if (r == buf && tv->vval.v_string != NULL)
{
r = vim_strsave(buf);
*tofree = r;
Expand Down Expand Up @@ -6616,7 +6616,9 @@ list_tv2string(
}
else
{
int old_copyID = tv->vval.v_list->lv_copyID;
int old_copyID;
if (restore_copyID)
old_copyID = tv->vval.v_list->lv_copyID;

tv->vval.v_list->lv_copyID = copyID;
*tofree = list2string(tv, copyID, restore_copyID);
Expand Down Expand Up @@ -6658,7 +6660,9 @@ dict_tv2string(
}
else
{
int old_copyID = tv->vval.v_dict->dv_copyID;
int old_copyID;
if (restore_copyID)
old_copyID = tv->vval.v_dict->dv_copyID;

tv->vval.v_dict->dv_copyID = copyID;
*tofree = dict2string(tv, copyID, restore_copyID);
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -704,6 +704,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
429,
/**/
428,
/**/
Expand Down

0 comments on commit b335a93

Please sign in to comment.