Merge branch 'jk/reftable-leakfix'

A memory leak in the 'reftable_writer_new()' initialization function
has been fixed by delaying the allocation of 'struct reftable_writer'
until after input options are validated.

* jk/reftable-leakfix:
  reftable: fix unlikely leak on API error
This commit is contained in:
Junio C Hamano
2026-07-13 08:27:26 -07:00

View File

@@ -151,10 +151,6 @@ int reftable_writer_new(struct reftable_writer **out,
struct reftable_write_options opts = {0};
struct reftable_writer *wp;
wp = reftable_calloc(1, sizeof(*wp));
if (!wp)
return REFTABLE_OUT_OF_MEMORY_ERROR;
if (_opts)
opts = *_opts;
options_set_defaults(&opts);
@@ -164,6 +160,10 @@ int reftable_writer_new(struct reftable_writer **out,
if (!hash_id)
hash_id = REFTABLE_HASH_SHA1;
wp = reftable_calloc(1, sizeof(*wp));
if (!wp)
return REFTABLE_OUT_OF_MEMORY_ERROR;
reftable_buf_init(&wp->block_writer_data.last_key);
reftable_buf_init(&wp->last_key);
reftable_buf_init(&wp->scratch);