]> git.ipfire.org Git - thirdparty/git.git/commitdiff
strbuf: use st_add3() in strbuf_grow()
authorRené Scharfe <l.s.r@web.de>
Mon, 18 May 2026 20:25:01 +0000 (22:25 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 May 2026 00:52:22 +0000 (09:52 +0900)
Simplify the code by calling st_add3() to do overflow checks instead of
open-coding it.  This changes the error message to include the offending
summands, which can be helpful when tracking down the cause.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
strbuf.c

index 3e04addc22febb60cc79fbdfc42257336b86809d..8610965d531298aa9817aacb995bee02a43bdde4 100644 (file)
--- a/strbuf.c
+++ b/strbuf.c
@@ -106,12 +106,10 @@ void strbuf_attach(struct strbuf *sb, void *buf, size_t len, size_t alloc)
 void strbuf_grow(struct strbuf *sb, size_t extra)
 {
        int new_buf = !sb->alloc;
-       if (unsigned_add_overflows(extra, 1) ||
-           unsigned_add_overflows(sb->len, extra + 1))
-               die("you want to use way too much memory");
+       size_t new_len = st_add3(sb->len, extra, 1);
        if (new_buf)
                sb->buf = NULL;
-       ALLOC_GROW(sb->buf, sb->len + extra + 1, sb->alloc);
+       ALLOC_GROW(sb->buf, new_len, sb->alloc);
        if (new_buf)
                sb->buf[0] = '\0';
 }