diff options
Diffstat (limited to 'builtin/fetch.c')
| -rw-r--r-- | builtin/fetch.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/builtin/fetch.c b/builtin/fetch.c index 80a64d0d26..5fb6d6bcf1 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -1732,8 +1732,15 @@ static int do_fetch(struct transport *transport, goto cleanup; retcode = ref_transaction_commit(transaction, &err); - if (retcode) + if (retcode) { + /* + * Explicitly handle transaction cleanup to avoid + * aborting an already closed transaction. + */ + ref_transaction_free(transaction); + transaction = NULL; goto cleanup; + } } commit_fetch_head(&fetch_head); |
