]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ps/reftable-alloc-failures'
authorJunio C Hamano <gitster@pobox.com>
Thu, 10 Oct 2024 21:22:24 +0000 (14:22 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 10 Oct 2024 21:22:25 +0000 (14:22 -0700)
The reftable library is now prepared to expect that the memory
allocation function given to it may fail to allocate and to deal
with such an error.

* ps/reftable-alloc-failures: (26 commits)
  reftable/basics: fix segfault when growing `names` array fails
  reftable/basics: ban standard allocator functions
  reftable: introduce `REFTABLE_FREE_AND_NULL()`
  reftable: fix calls to free(3P)
  reftable: handle trivial allocation failures
  reftable/tree: handle allocation failures
  reftable/pq: handle allocation failures when adding entries
  reftable/block: handle allocation failures
  reftable/blocksource: handle allocation failures
  reftable/iter: handle allocation failures when creating indexed table iter
  reftable/stack: handle allocation failures in auto compaction
  reftable/stack: handle allocation failures in `stack_compact_range()`
  reftable/stack: handle allocation failures in `reftable_new_stack()`
  reftable/stack: handle allocation failures on reload
  reftable/reader: handle allocation failures in `reader_init_iter()`
  reftable/reader: handle allocation failures for unindexed reader
  reftable/merged: handle allocation failures in `merged_table_init_iter()`
  reftable/writer: handle allocation failures in `reftable_new_writer()`
  reftable/writer: handle allocation failures in `writer_index_hash()`
  reftable/record: handle allocation failures when decoding records
  ...

1  2 
Makefile
refs/reftable-backend.c
reftable/reader.h
reftable/reftable-stack.h
reftable/reftable-writer.h
reftable/stack.c
t/unit-tests/t-reftable-stack.c

diff --cc Makefile
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 84cf37a2ad03ea7d576843326213a31788c5207b,63976e5ceae489f194d15c72fcd6994e3173fd8c..7e617c25914b2faac3990747036eaa47bf729b99
@@@ -749,9 -790,13 +798,13 @@@ int reftable_stack_new_addition(struct 
  {
        int err = 0;
        struct reftable_addition empty = REFTABLE_ADDITION_INIT;
        REFTABLE_CALLOC_ARRAY(*dest, 1);
+       if (!*dest)
+               return REFTABLE_OUT_OF_MEMORY_ERROR;
        **dest = empty;
 -      err = reftable_stack_init_addition(*dest, st);
 +      err = reftable_stack_init_addition(*dest, st, flags);
        if (err) {
                reftable_free(*dest);
                *dest = NULL;
Simple merge