merge-ort: do check `parse_tree()`'s return value

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>

Johannes Schindelin committed Feb 23, 2024 at 08:34 UTC f30e6c32d8a27760915922b1ddf76f95f11539bb
1 file changed +4 -2
merge-ort.c
+4 -2
@@ -4379,9 +4379,11 @@ static int checkout(struct merge_options *opt,
4379 unpack_opts.verbose_update = (opt->verbosity > 2);
4380 unpack_opts.fn = twoway_merge;
4381 unpack_opts.preserve_ignored = 0; /* FIXME: !opts->overwrite_ignore */
4382 - parse_tree(prev);
4382 + if (parse_tree(prev) < 0)
4383 + return -1;
4384 init_tree_desc(&trees[0], prev->buffer, prev->size);
4384 - parse_tree(next);
4385 + if (parse_tree(next) < 0)
4386 + return -1;
4387 init_tree_desc(&trees[1], next->buffer, next->size);
4388
4389 ret = unpack_trees(2, trees, &unpack_opts);