pr-2096/newren/duplicate-entry-hardening-v2
tagged this
14 Jun 06:37
We had some corrupt trees with duplicate entries in real world repositories, which triggered an assertion failure in merge-ort. Further, the corrupt tree creation in the third party tool would have been avoided had verify_cache() correctly checked for D/F conflicts. Provide fixes for both issues, including 3 preparatory changes for the merge-ort fix. Changes since v1: * Add some more detail to the commit message of Patch 1 * Split some code out in Patch 5 into a helper function. Elijah Newren (5): merge-ort: propagate callback errors from traverse_trees_wrapper() merge-ort: drop unnecessary show_all_errors from collect_merge_info() merge-ort: free diff pairs queue in clear_or_reinit_internal_opts() merge-ort: abort merge when trees have duplicate entries cache-tree: fix verify_cache() to catch non-adjacent D/F conflicts cache-tree.c | 64 +++++++++++++++++++---- merge-ort.c | 78 ++++++++++++++++------------ t/meson.build | 1 + t/t0093-direct-index-write.pl | 38 ++++++++++++++ t/t0093-verify-cache-df-gap.sh | 59 +++++++++++++++++++++ t/t6422-merge-rename-corner-cases.sh | 54 +++++++++++++++++++ 6 files changed, 249 insertions(+), 45 deletions(-) create mode 100644 t/t0093-direct-index-write.pl create mode 100755 t/t0093-verify-cache-df-gap.sh base-commit: e8955061076952cc5eab0300424fc48b601fe12d Submitted-As: https://lore.kernel.org/git/pull.2096.v2.git.1781419047.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.2096.git.1776731171.gitgitgadget@gmail.com