From 51d3f43d2fd7f93cd19494eef4aef712fad597c2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martin=20=C3=85gren?= Date: Wed, 28 Feb 2018 20:07:56 +0100 Subject: [PATCH] merge-recursive: always roll back lock in `merge_recursive_generic()` MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If we return early, or if `active_cache_changed` is false, we forget to roll back the lockfile. Signed-off-by: Martin Ågren Signed-off-by: Junio C Hamano --- merge-recursive.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/merge-recursive.c b/merge-recursive.c index 6ff971f9a2..129577987b 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -2218,12 +2218,15 @@ int merge_recursive_generic(struct merge_options *o, hold_locked_index(&lock, LOCK_DIE_ON_ERROR); clean = merge_recursive(o, head_commit, next_commit, ca, result); - if (clean < 0) + if (clean < 0) { + rollback_lock_file(&lock); return clean; + } if (active_cache_changed && write_locked_index(&the_index, &lock, COMMIT_LOCK)) return err(o, _("Unable to write index.")); + rollback_lock_file(&lock); return clean ? 0 : 1; } -- 2.49.0