summaryrefslogtreecommitdiff
path: root/refs
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2018-02-13 13:39:11 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-02-13 13:39:11 -0800
commit2b72ea0a48e8e5711f9bba122cbaf2bbe10737bc (patch)
treeee94c849b9efabb762d53b0567f69bae58756fdf /refs
parentMerge branch 'jt/http-redact-cookies' (diff)
parentfiles_initial_transaction_commit(): only unlock if locked (diff)
downloadtgif-2b72ea0a48e8e5711f9bba122cbaf2bbe10737bc.tar.xz
Merge branch 'mr/packed-ref-store-fix'
Crash fix for a corner case where an error codepath tried to unlock what it did not acquire lock on. * mr/packed-ref-store-fix: files_initial_transaction_commit(): only unlock if locked
Diffstat (limited to 'refs')
-rw-r--r--refs/files-backend.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/refs/files-backend.c b/refs/files-backend.c
index f75d960e19..bec8e30e9e 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -2931,13 +2931,12 @@ static int files_initial_transaction_commit(struct ref_store *ref_store,
if (initial_ref_transaction_commit(packed_transaction, err)) {
ret = TRANSACTION_GENERIC_ERROR;
- goto cleanup;
}
+ packed_refs_unlock(refs->packed_ref_store);
cleanup:
if (packed_transaction)
ref_transaction_free(packed_transaction);
- packed_refs_unlock(refs->packed_ref_store);
transaction->state = REF_TRANSACTION_CLOSED;
string_list_clear(&affected_refnames, 0);
return ret;