]> Kevux Git Server - rit/commit
strbuf: pass correct alloc to strbuf_attach() in strbuf_reencode()
authorVaidas Pilkauskas <vaidas.pilkauskas@shopify.com>
Tue, 17 Mar 2026 13:00:33 +0000 (13:00 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Mar 2026 16:14:19 +0000 (09:14 -0700)
commitbc6a6cf5eedb19b1b1da92ed2761ff9b1c7da627
treeee36b0ddfd8d48f295ce4c83b02387be63c11d16
parent67ad42147a7acc2af6074753ebd03d904476118f
strbuf: pass correct alloc to strbuf_attach() in strbuf_reencode()

reencode_string_len() allocates len+1 bytes (including the NUL) and
returns the string length in len. strbuf_reencode() was calling
strbuf_attach(sb, out, len, len), so alloc was one byte too small.

strbuf_attach() then calls strbuf_grow(sb, 0). With alloc < len+1,
ALLOC_GROW always reallocates, so we reallocated immediately after
attach even when the strbuf was not extended further. Pass len+1 as
the alloc argument so the existing buffer is reused and the
reallocation is avoided.

Signed-off-by: Vaidas Pilkauskas <vaidas.pilkauskas@shopify.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
strbuf.c