[PATCH v2 3/5] merge-recursive: always roll back lock in `merge_recursive_generic()`
- From
- Martin Ågren <martin.agren@gmail.com>
- Date
- Feb 28, 2018, 19:07 UTC
- Message-ID
- <e902855072b5beb107c9dd5a5651c25c54386d03.1519843916.git.martin.agren@gmail.com>
- In-Reply-To
- <cover.1519843916.git.martin.agren@gmail.com>
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> --- merge-recursive.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/merge-recursive.c b/merge-recursive.c index cc5fa0a949..002fb82cf1 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -2198,12 +2198,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.16.2.246.ga4ee44448f