Signed-off-by: René Scharfe <l.s.r@xxxxxx> --- Patch generated with --function-context for easier review. The plugged leak was added by a10a17877b (for_each_alternate_ref: replace transport code with for-each-ref, 2017-02-08) and showed up in 709dfa6990 (object-store.h: move for_each_alternate_ref() from transport.h, 2019-07-01), where it caught my eye, belatedly. sha1-file.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sha1-file.c b/sha1-file.c index 84fd02f107..487ea35d2d 100644 --- a/sha1-file.c +++ b/sha1-file.c @@ -773,32 +773,33 @@ static void fill_alternate_refs_command(struct child_process *cmd, static void read_alternate_refs(const char *path, alternate_ref_fn *cb, void *data) { struct child_process cmd = CHILD_PROCESS_INIT; struct strbuf line = STRBUF_INIT; FILE *fh; fill_alternate_refs_command(&cmd, path); if (start_command(&cmd)) return; fh = xfdopen(cmd.out, "r"); while (strbuf_getline_lf(&line, fh) != EOF) { struct object_id oid; const char *p; if (parse_oid_hex(line.buf, &oid, &p) || *p) { warning(_("invalid line while parsing alternate refs: %s"), line.buf); break; } cb(&oid, data); } fclose(fh); finish_command(&cmd); + strbuf_release(&line); } struct alternate_refs_data { -- 2.22.0