From 39c722733e8f305cfc6a48e034b126abe3dca4cb Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 1 Jul 2026 07:04:29 +0000 Subject: [PATCH] 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 Signed-off-by: Junio C Hamano --- reftable/table.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reftable/table.c b/reftable/table.c index 56362df0ed..d604ddebf4 100644 --- a/reftable/table.c +++ b/reftable/table.c @@ -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; }