neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 501ee06d3a12fbe3f0283f579605e38165c8f78b
parent d31e68d5d0d05fc51db01d85a6d02c01e9fa2559
Author: James McCoy <jamessan@jamessan.com>
Date:   Fri, 20 May 2022 06:58:42 -0400

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.

Diffstat:
Msrc/nvim/strings.c | 1+
1 file changed, 1 insertion(+), 0 deletions(-)

diff --git 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);