From: Junio C Hamano Date: Tue, 13 Feb 2018 21:39:11 +0000 (-0800) Subject: Merge branch 'mr/packed-ref-store-fix' X-Git-Tag: v2.17.0-rc0~118 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/2b72ea0a48e8e5711f9bba122cbaf2bbe10737bc?hp=53274637257aebdb5e30848d24c524bf5bbf70dc 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 --- 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;