diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2024-02-23 09:34:21 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-02-23 19:19:39 +0100 |
commit | f30e6c32d8a27760915922b1ddf76f95f11539bb (patch) | |
tree | 334432972c83bcb2310488d3ead7d08085292015 | |
parent | merge-tree: fail with a non-zero exit code on missing tree objects (diff) | |
download | git-f30e6c32d8a27760915922b1ddf76f95f11539bb.tar.xz git-f30e6c32d8a27760915922b1ddf76f95f11539bb.zip |
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>
-rw-r--r-- | merge-ort.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/merge-ort.c b/merge-ort.c index c37fc035f1..79d9e18f63 100644 --- a/merge-ort.c +++ b/merge-ort.c @@ -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); |