aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2022-05-20 06:58:42 -0400
committerJames McCoy <jamessan@jamessan.com>2022-05-20 08:17:33 -0400
commit501ee06d3a12fbe3f0283f579605e38165c8f78b (patch)
tree3540441dbedbe0e2e56f9011a68e5869b24057e8
parentd31e68d5d0d05fc51db01d85a6d02c01e9fa2559 (diff)
downloadrneovim-501ee06d3a12fbe3f0283f579605e38165c8f78b.tar.gz
rneovim-501ee06d3a12fbe3f0283f579605e38165c8f78b.tar.bz2
rneovim-501ee06d3a12fbe3f0283f579605e38165c8f78b.zip
fix(cid/352782): assert str->items is non-NULL to hint static analyzers
The earlier vsnprintf() call checks whether str->items is NULL, sets of the "possible NULL" spidey sense. kv_ensure_space() guarantees str->items is non-NULL but since it doesn't use NULL checks to decide whether to alloc, static analyzers can't tell this code path is safe.
-rw-r--r--src/nvim/strings.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/nvim/strings.c b/src/nvim/strings.c
index cde2059a9d..065254da28 100644
--- a/src/nvim/strings.c
+++ b/src/nvim/strings.c
@@ -1496,6 +1496,7 @@ int kv_do_printf(StringBuilder *str, const char *fmt, ...)
// printed string didn't fit, resize and try again
if ((size_t)printed >= remaining) {
kv_ensure_space(*str, (size_t)printed + 1); // include space for NUL terminator at the end
+ assert(str->items != NULL);
va_start(ap, fmt);
printed = vsnprintf(str->items + str->size, str->capacity - str->size, fmt, ap);
va_end(ap);