Skip to content

Commit 150efef

Browse files
Martin Ågrengitster
authored andcommitted
pkt-line: re-'static'-ify buffer in packet_write_fmt_1()
The static-ness was silently dropped in commit 70428d1 ("pkt-line: add packet_write_fmt_gently()", 2016-10-16). As a result, for each call to packet_write_fmt_1, we allocate and leak a buffer. We could keep the strbuf non-static and instead make sure we always release it before returning (but not before we die, so that we don't touch errno). That would also prepare us for threaded use. But until that needs to happen, let's just restore the static-ness so that we get back to a situation where we (eventually) do not continuosly keep allocating memory. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 7eeda8b commit 150efef

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

pkt-line.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,10 @@ static void format_packet(struct strbuf *out, const char *fmt, va_list args)
136136
static int packet_write_fmt_1(int fd, int gently,
137137
const char *fmt, va_list args)
138138
{
139-
struct strbuf buf = STRBUF_INIT;
139+
static struct strbuf buf = STRBUF_INIT;
140140
ssize_t count;
141141

142+
strbuf_reset(&buf);
142143
format_packet(&buf, fmt, args);
143144
count = write_in_full(fd, buf.buf, buf.len);
144145
if (count == buf.len)

0 commit comments

Comments
 (0)