Subject: [PATCH v2 0/3] cache-tree: fix segfaults with invalid cache-trees

From: Patrick Steinhardt <[email-masked]>
Date: Mon, 7 Oct 2024 06:38:12 +0200

Hi,

this is the second version of my patch series that fixes segfaults when
the index has a corrupted cache-tree extension.

I completely forgot about this series, and it seems to have slipped the
radar, until I rediscovered some of the segfaults while doing the last
couple of leak fixes. So I decided to just resend it with Eric's comment
addressed, which boils down to a single clarification of one of the
commit messages.

Thanks!

Patrick

Patrick Steinhardt (3):
  cache-tree: refactor verification to return error codes
  cache-tree: detect mismatching number of index entries
  unpack-trees: detect mismatching number of cache-tree/index entries

 cache-tree.c               | 102 ++++++++++++++++++++++++++-----------
 cache-tree.h               |   2 +-
 read-cache.c               |   5 +-
 t/t4058-diff-duplicates.sh |  19 ++++---
 unpack-trees.c             |  12 +++--
 5 files changed, 97 insertions(+), 43 deletions(-)

Range-diff against v1:
1:  413faa2b81 ! 1:  df5a2d0dbc cache-tree: refactor verification to return error codes
    @@ Commit message
     
         Refactor the function to instead return error codes. This also ensures
         that the function can be used e.g. by git-fsck(1) without the whole
    -    process dying.
    +    process dying. Furthermore, this refactoring plugs some memory leaks
    +    when returning early by creating a common exit path.
     
         Signed-off-by: Patrick Steinhardt <[email-masked]>
     
2:  4bdcc43518 = 2:  d63087c53c cache-tree: detect mismatching number of index entries
3:  fbffeeb6f1 = 3:  5e578c1f41 unpack-trees: detect mismatching number of cache-tree/index entries

base-commit: 3969d78396e707c5a900dd5e15c365c54bef0283
-- 
2.47.0.rc0.dirty