From 501ee06d3a12fbe3f0283f579605e38165c8f78b Mon Sep 17 00:00:00 2001 From: James McCoy Date: Fri, 20 May 2022 06:58:42 -0400 Subject: [PATCH] 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. --- src/nvim/strings.c | 1 + 1 file changed, 1 insertion(+) 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);