summaryrefslogtreecommitdiff
path: root/builtin/fetch.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-04-16 13:54:17 -0700
committerJunio C Hamano <gitster@pobox.com>2025-04-16 13:54:17 -0700
commit518ed014f6f2732000afdb13ef5354dd96f04746 (patch)
treec55ffe48809fe07ef3298f70b830b5e336a242f4 /builtin/fetch.c
parent959760dc42880d7b8fc878db9221d8ced1e4c48f (diff)
parentb9fadeead74df1f4fa4a4177e478903d63e600f5 (diff)
Merge branch 'jt/ref-transaction-abort-fix'
A ref transaction corner case fix. * jt/ref-transaction-abort-fix: builtin/fetch: avoid aborting closed reference transaction
Diffstat (limited to 'builtin/fetch.c')
-rw-r--r--builtin/fetch.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 1c6573345e..5694a3a27f 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -1859,8 +1859,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);