diff options
author | James McCoy <jamessan@jamessan.com> | 2022-05-20 06:58:42 -0400 |
---|---|---|
committer | James McCoy <jamessan@jamessan.com> | 2022-05-20 08:17:33 -0400 |
commit | 501ee06d3a12fbe3f0283f579605e38165c8f78b (patch) | |
tree | 3540441dbedbe0e2e56f9011a68e5869b24057e8 | |
parent | d31e68d5d0d05fc51db01d85a6d02c01e9fa2559 (diff) | |
download | rneovim-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.c | 1 |
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); |