]> git.ipfire.org Git - thirdparty/git.git/commitdiff
merge-ort: do check `parse_tree()`'s return value
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 23 Feb 2024 08:34:21 +0000 (08:34 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 23 Feb 2024 18:19:39 +0000 (10:19 -0800)
The previous commit fixed a bug where a missing tree was reported, but
not treated as an error.

This patch addresses the same issue for the remaining two callers of
`parse_tree()`.

This change is not accompanied by a regression test because the code in
question is only reached at the `checkout` stage, i.e. after the merge
has happened (and therefore the tree objects could only be missing if
the disk had gone bad in that short time window, or something similarly
tricky to recreate in the test suite).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
merge-ort.c

index c37fc035f1334eeecef098580d87c404f13088c8..79d9e18f63dca282bd72cddcc9fe22a350f1af6d 100644 (file)
@@ -4379,9 +4379,11 @@ static int checkout(struct merge_options *opt,
        unpack_opts.verbose_update = (opt->verbosity > 2);
        unpack_opts.fn = twoway_merge;
        unpack_opts.preserve_ignored = 0; /* FIXME: !opts->overwrite_ignore */
-       parse_tree(prev);
+       if (parse_tree(prev) < 0)
+               return -1;
        init_tree_desc(&trees[0], prev->buffer, prev->size);
-       parse_tree(next);
+       if (parse_tree(next) < 0)
+               return -1;
        init_tree_desc(&trees[1], next->buffer, next->size);
 
        ret = unpack_trees(2, trees, &unpack_opts);