[RFC PATCH 07/15] strbuf.c: placate -fanalyzer in strbuf_grow()
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Jun 3, 2022, 18:37 UTC
- Message-ID
- <RFC-patch-07.15-cf1a5f3ed0f-20220603T183608Z-avarab@gmail.com>
- In-Reply-To
- <RFC-cover-00.15-00000000000-20220603T183608Z-avarab@gmail.com>
Change the strbuf_grow() function so that GCC v12's -fanalyze doesn't yell at us about sb->buf[0] dereferencing NULL, this also makes this code easier to follow.
This BUG() should be unreachable since the state of our "sb->buf" and "sb->alloc" goes hand-in-hand, but -fanalyzer isn't smart enough to know that, and adding the BUG() also makes it clearer to human readers that that's what happens here.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> --- strbuf.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/strbuf.c b/strbuf.c index dd9eb85527a..61c4630aeeb 100644 --- a/strbuf.c +++ b/strbuf.c @@ -97,6 +97,8 @@ void strbuf_grow(struct strbuf *sb, size_t extra) if (new_buf) sb->buf = NULL; ALLOC_GROW(sb->buf, sb->len + extra + 1, sb->alloc); + if (new_buf && !sb->buf) + BUG("for a new buffer ALLOC_GROW() should always do work!"); if (new_buf) sb->buf[0] = '\0'; }
-- 2.36.1.1124.g577fa9c2ebd