From 241fe704a52092aad7eff8c1cbf25262bfcf0195 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 30 Oct 2017 23:29:47 +0100 Subject: [PATCH] pvs/V575: false positive (#7462) ./src/nvim/ex_getln.c:2787:1: error: V575 The 'memcpy' function doesn't copy the whole string. Use 'strcpy / strcpy_s' function to preserve terminal null. We could instead "trick" PVS like this: diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index e79476ab532a..295630693b27 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -2782,9 +2782,10 @@ static void ui_ext_cmdline_show(CmdlineInfo *line) void ui_ext_cmdline_block_append(int indent, const char *line) { - char *buf = xmallocz(indent + strlen(line)); + size_t linelen = strlen(line); + char *buf = xmallocz(indent + linelen); memset(buf, ' ', indent); - memcpy(buf+indent, line, strlen(line)); + memcpy(buf + indent, line, linelen); Array item = ARRAY_DICT_INIT; ADD(item, DICTIONARY_OBJ((Dictionary)ARRAY_DICT_INIT)); --- src/nvim/ex_getln.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index e79476ab53..c9567145e4 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -2784,7 +2784,7 @@ void ui_ext_cmdline_block_append(int indent, const char *line) { char *buf = xmallocz(indent + strlen(line)); memset(buf, ' ', indent); - memcpy(buf+indent, line, strlen(line)); + memcpy(buf + indent, line, strlen(line)); // -V575 Array item = ARRAY_DICT_INIT; ADD(item, DICTIONARY_OBJ((Dictionary)ARRAY_DICT_INIT));