changeset 16684:1c2d9f67d98f v8.1.1344

patch 8.1.1344: Coverity complains about possibly using a NULL pointer commit https://github.com/vim/vim/commit/0d3cb73012332964e7a81d7afd1c21d393f45566 Author: Bram Moolenaar <Bram@vim.org> Date: Sat May 18 13:05:18 2019 +0200 patch 8.1.1344: Coverity complains about possibly using a NULL pointer Problem: Coverity complains about possibly using a NULL pointer and copying a string into a fixed size buffer. Solution: Check for NULL, even though it should not happen. Use vim_strncpy() instead of strcpy().
author Bram Moolenaar <Bram@vim.org>
date Sat, 18 May 2019 13:15:06 +0200
parents 679aca57417f
children 8afb13c6a0d9
files src/change.c src/memline.c src/version.c
diffstat 3 files changed, 14 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/change.c
+++ b/src/change.c
@@ -193,12 +193,16 @@ check_recorded_changes(
 			// can be merged.
 			di = dict_find(li->li_tv.vval.v_dict,
 							  (char_u *)"end", -1);
-			nr = tv_get_number(&di->di_tv);
-			if (lnume > nr)
-			    di->di_tv.vval.v_number = lnume;
+			if (di != NULL)
+			{
+			    nr = tv_get_number(&di->di_tv);
+			    if (lnume > nr)
+				di->di_tv.vval.v_number = lnume;
+			}
 			di = dict_find(li->li_tv.vval.v_dict,
 							(char_u *)"added", -1);
-			di->di_tv.vval.v_number += xtra;
+			if (di != NULL)
+			    di->di_tv.vval.v_number += xtra;
 			return TRUE;
 		    }
 		}
--- a/src/memline.c
+++ b/src/memline.c
@@ -1874,7 +1874,7 @@ recover_names(
 	    }
 	}
 
-	    /* check for out-of-memory */
+	// check for out-of-memory
 	for (i = 0; i < num_names; ++i)
 	{
 	    if (names[i] == NULL)
@@ -2101,7 +2101,7 @@ get_ctime(time_t thetime, int add_newlin
 # endif
     /* MSVC returns NULL for an invalid value of seconds. */
     if (curtime == NULL)
-	STRCPY(buf, _("(Invalid)"));
+	vim_strncpy((char_u *)buf, (char_u *)_("(Invalid)"), sizeof(buf) - 1);
     else
 	(void)strftime(buf, sizeof(buf) - 1, "%a %b %d %H:%M:%S %Y", curtime);
 #else
@@ -3374,7 +3374,8 @@ ml_replace_len(
 	    if (newline != NULL)
 	    {
 		mch_memmove(newline, line, len);
-		mch_memmove(newline + len, curbuf->b_ml.ml_line_ptr + oldtextlen, textproplen);
+		mch_memmove(newline + len, curbuf->b_ml.ml_line_ptr
+						    + oldtextlen, textproplen);
 		vim_free(line);
 		line = newline;
 		len += (colnr_T)textproplen;
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1344,
+/**/
     1343,
 /**/
     1342,