git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] bundle-uri: plug leak in unbundle_from_file()
@ 2024-08-26  8:30 Toon Claes
  2024-08-26  9:51 ` Patrick Steinhardt
  2024-10-10  9:12 ` [PATCH v2] " Toon Claes
  0 siblings, 2 replies; 9+ messages in thread
From: Toon Claes @ 2024-08-26  8:30 UTC (permalink / raw)
  To: git; +Cc: Toon Claes

When the function returns early, the variable bundle_ref is not released
through strbuf_release().

Fix this leak. And while at it, remove assignments in the conditions of
the "if" statements as suggested in the CodingGuidelines.

Signed-off-by: Toon Claes <toon@iotcl.com>
---
 bundle-uri.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/bundle-uri.c b/bundle-uri.c
index 1e0ee156ba..eb49cba182 100644
--- a/bundle-uri.c
+++ b/bundle-uri.c
@@ -367,17 +367,21 @@ static int unbundle_from_file(struct repository *r, const char *file)
 	struct strbuf bundle_ref = STRBUF_INIT;
 	size_t bundle_prefix_len;

-	if ((bundle_fd = read_bundle_header(file, &header)) < 0)
-		return 1;
+	bundle_fd = read_bundle_header(file, &header);
+	if (bundle_fd < 0) {
+		result = 1;
+		goto cleanup;
+	}

 	/*
 	 * Skip the reachability walk here, since we will be adding
 	 * a reachable ref pointing to the new tips, which will reach
 	 * the prerequisite commits.
 	 */
-	if ((result = unbundle(r, &header, bundle_fd, NULL,
-			       VERIFY_BUNDLE_QUIET | (fetch_pack_fsck_objects() ? VERIFY_BUNDLE_FSCK : 0))))
-		return 1;
+	result = unbundle(r, &header, bundle_fd, NULL,
+			  VERIFY_BUNDLE_QUIET | (fetch_pack_fsck_objects() ? VERIFY_BUNDLE_FSCK : 0));
+	if (result)
+		goto cleanup;

 	/*
 	 * Convert all refs/heads/ from the bundle into refs/bundles/
@@ -406,6 +410,8 @@ static int unbundle_from_file(struct repository *r, const char *file)
 				0, UPDATE_REFS_MSG_ON_ERR);
 	}

+cleanup:
+	strbuf_release(&bundle_ref);
 	bundle_header_release(&header);
 	return result;
 }
--
2.46.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-10-10 18:48 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-26  8:30 [PATCH] bundle-uri: plug leak in unbundle_from_file() Toon Claes
2024-08-26  9:51 ` Patrick Steinhardt
2024-08-26 16:06   ` Junio C Hamano
2024-10-01 18:58     ` Toon Claes
2024-10-01 19:29       ` Junio C Hamano
2024-10-10  9:15     ` Toon Claes
2024-10-10  9:12 ` [PATCH v2] " Toon Claes
2024-10-10 12:55   ` Patrick Steinhardt
2024-10-10 18:47     ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).