diff options
author | Martin Ågren <martin.agren@gmail.com> | 2018-02-28 22:07:56 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-02-28 22:15:51 +0300 |
commit | 51d3f43d2fd7f93cd19494eef4aef712fad597c2 (patch) | |
tree | 915f5c117a9654ccc5b6dfabe47b036cacab910d /merge-recursive.c | |
parent | 6481652432eed5b073428411763d5b5d712b6745 (diff) |
merge-recursive: always roll back lock in `merge_recursive_generic()`
If we return early, or if `active_cache_changed` is false, we forget to
roll back the lockfile.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'merge-recursive.c')
-rw-r--r-- | merge-recursive.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/merge-recursive.c b/merge-recursive.c index 6ff971f9a2a..129577987ba 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; } |