Mercurial > vim
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;