reftable/table: release filter on error path

`reftable_table_refs_for_unindexed()` allocates a filtering_ref_iterator
and then calls `reftable_buf_add()` to populate its oid buffer. On
success ownership is transferred to the output iterator, but if
`reftable_buf_add()` fails, the goto-out cleanup only frees the table
iterator and walks away from both the filter allocation and the oid
buffer that `reftable_buf_add()` may have grown.

Release filter->oid and free filter alongside the existing table
iterator cleanup.

Reported by Coverity as CID 1671512 ("Resource leak").

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
main
Johannes Schindelin 2026-07-05 08:24:27 +00:00 committed by Junio C Hamano
parent 22f92aa62a
commit b3b1d83f36
1 changed files with 4 additions and 0 deletions

View File

@ -709,6 +709,10 @@ out:
if (ti)
table_iter_close(ti);
reftable_free(ti);
if (filter) {
reftable_buf_release(&filter->oid);
reftable_free(filter);
}
}
return err;
}