This series was targeted to 'next'.
This addresses some complaints from Coverity that Peff reported.
v3:
* revert some changes suggested by stolee
* add unittest for zlib corruption.
Han-Wen Nienhuys (11):
reftable: fix OOB stack write in print functions
reftable: fix resource leak in block.c error path
reftable: fix resource leak blocksource.c
reftable: check reftable_stack_auto_compact() return value
reftable: ignore remove() return value in stack_test.c
reftable: fix resource warning
reftable: all xxx_free() functions accept NULL arguments
reftable: order unittests by complexity
reftable: drop stray printf in readwrite_test
reftable: handle null refnames in reftable_ref_record_equal
reftable: make reftable_record a tagged union
reftable/block.c | 28 +++---
reftable/block_test.c | 22 ++---
reftable/blocksource.c | 6 +-
reftable/generic.c | 35 ++++----
reftable/iter.c | 4 +-
reftable/merged.c | 33 +++----
reftable/pq.c | 3 +-
reftable/pq_test.c | 31 +++----
reftable/reader.c | 95 ++++++++++----------
reftable/readwrite_test.c | 67 +++++++++++++-
reftable/record.c | 185 ++++++++++++++++----------------------
reftable/record.h | 42 ++++-----
reftable/record_test.c | 181 +++++++++++++++++++------------------
reftable/stack.c | 12 +--
reftable/stack_test.c | 3 +-
reftable/writer.c | 42 +++++----
t/helper/test-reftable.c | 9 +-
17 files changed, 428 insertions(+), 370 deletions(-)
base-commit: fae76fe5da3df25d752f2251b7ccda3f62813aa9
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1152%2Fhanwen%2Freftable-coverity-v4
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1152/hanwen/reftable-coverity-v4
Pull-Request: https://github.com/git/git/pull/1152
Range-diff vs v3:
1: 1c1a3ff92bd = 1: 1c1a3ff92bd reftable: fix OOB stack write in print functions
2: 975a570d388 ! 2: 923293b79b4 reftable: fix resource leak in error path
@@ Metadata
Author: Han-Wen Nienhuys <hanwen@google.com>
## Commit message ##
- reftable: fix resource leak in error path
+ reftable: fix resource leak in block.c error path
Add test coverage for corrupt zlib data.
@@ reftable/block.c: int block_reader_init(struct block_reader *br, struct reftable
- return 0;
+done:
-+ if (uncompressed) {
-+ reftable_free(uncompressed);
-+ }
++ reftable_free(uncompressed);
+ return err;
}
@@ reftable/readwrite_test.c: static void test_log_write_read(void)
+ struct reftable_write_options opts = {
+ .block_size = 256,
+ };
-+ struct reftable_iterator it = { NULL };
-+ struct reftable_reader rd = { NULL };
-+ struct reftable_block_source source = { NULL };
++ struct reftable_iterator it = { 0 };
++ struct reftable_reader rd = { 0 };
++ struct reftable_block_source source = { 0 };
+ struct strbuf buf = STRBUF_INIT;
+ struct reftable_writer *w =
+ reftable_new_writer(&strbuf_add_void, &buf, &opts);
@@ reftable/readwrite_test.c: static void test_log_write_read(void)
+ },
+ };
+
-+ for (i = 0; i < sizeof(message)-1; i++) {
++ for (i = 0; i < sizeof(message)-1; i++)
+ message[i] = (uint8_t)(rand() % 64 + ' ');
-+ }
+
+ reftable_writer_set_limits(w, 1, 1);
+
3: 0b9c7176d71 = 3: 7a914f77756 reftable: fix resource leak blocksource.c
4: 1dda4ee717f = 4: 51b4a17a2e1 reftable: check reftable_stack_auto_compact() return value
5: 36858e2070b = 5: 43989afcb5a reftable: ignore remove() return value in stack_test.c
6: 80b1988b885 = 6: 1c7f15d811c reftable: fix resource warning
7: 2939286924c < -: ----------- reftable: fix NULL derefs in error paths
-: ----------- > 7: 47ba5ddceb8 reftable: all xxx_free() functions accept NULL arguments
8: 9dce18d7349 ! 8: aba8b8113ad reftable: order unittests by complexity
@@ Metadata
## Commit message ##
reftable: order unittests by complexity
- This is a more pratical ordering when working on refactorings of the reftable
+ This is a more practical ordering when working on refactorings of the reftable
code.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
@@ t/helper/test-reftable.c
int cmd__reftable(int argc, const char **argv)
{
-+ // test from simple to complex.
++ /* test from simple to complex. */
basics_test_main(argc, argv);
+ record_test_main(argc, argv);
block_test_main(argc, argv);
9: 6b0af68f0b9 = 9: f2af404d7f1 reftable: drop stray printf in readwrite_test
10: bff85cb0809 = 10: d2ce1bfef9f reftable: handle null refnames in reftable_ref_record_equal
11: b3e592b9c27 = 11: 0ffc1cf0e42 reftable: make reftable_record a tagged union