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
parent
22f92aa62a
commit
b3b1d83f36
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue