changeset 35234:1912fb746834 v9.1.0429

patch 9.1.0429: Coverity complains about eval.c refactor Commit: https://github.com/vim/vim/commit/b335a9312cfbe5a5fa9186d06fe10479502ba15c Author: Christian Brabandt <cb@256bit.org> Date: Tue May 21 18:39:10 2024 +0200 patch 9.1.0429: Coverity complains about eval.c refactor 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 <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Tue, 21 May 2024 18:45:02 +0200
parents 77fec85de3ed
children d72e0321594d
files src/eval.c src/version.c
diffstat 2 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -6499,7 +6499,7 @@ func_tv2string(typval_T *tv, char_u **to
 	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;
@@ -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);
@@ -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);
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    429,
+/**/
     428,
 /**/
     427,