From patchwork Mon Oct 21 09:28:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843750 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D72601E1C0F for ; Mon, 21 Oct 2024 09:28:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502887; cv=none; b=QuTmpXcAL5yB8QlqHnWLpqCGHdjw3c+moEYCSVcrvZxwquyWfS1t4i+WVGqaizaymOBA6K1W9lHSE2X0AAIpNyEc41BstN4HauycETg0sil8h8r3XYKnVm8gBPgemZvZMbdrELSEMJ5koMB2TrmFJz7RoJSvofZpy3goriWBDB4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502887; c=relaxed/simple; bh=Twi7AEBQqAf74hbH/kvNX34VUXvwYI27PP5r3JgYuZY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=HnjbThVyR00CbDwVq4rKH+wzJWHrdmWACV7xV97GxWnBnPNG723fbk5otyMb2h6bklVuEtUfgms+rLTwvxiMnxd929EjAf/TFP/7YT96vO2lyaew/bLtlFsUJ2WpsAQN7MJBpSiIXKZPvVBaMQVlL6tWaJNPxGC50iNJC1vgEHw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=5CjSGryF; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=KNezfQpr; arc=none smtp.client-ip=103.168.172.144 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="5CjSGryF"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="KNezfQpr" Received: from phl-compute-03.internal (phl-compute-03.phl.internal [10.202.2.43]) by mailfout.phl.internal (Postfix) with ESMTP id DD2001380554; Mon, 21 Oct 2024 05:28:03 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Mon, 21 Oct 2024 05:28:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502883; x=1729589283; bh=rJbuhdzqw3 yVwMai2bTpw7S7lmDZqlwfMKSjNUuR3L4=; b=5CjSGryFCp5Ci7aXjAdg7enMEK 0xjoTlZjPLyjFzTWExiadbnLXTGl/1/l8dzejO395WLdmtueNQVYRCMhlZjyoKBl C/LcgDlQw/NovPGNOsl10RW2bV8IJm1nfh8R93e5wPOM5LTcWloRoNo+v9Pin/M/ 9sey/71MVBJRIQR1uFPeItdD+zpyuGQmcS0C1L/0Z7skkiVMIrrTUN2Oux0pZOes qVthtFy6ZAkeWFQnAnsygUrcSgZMVl3XCROIO0g5DKCa7s7TeDyUQCjRuIvSmt5E ZGhWoxK+TtQIk7cQjIqTtf4MvUwtdwatF2PD1rFcMGfLoxkdOAq8v0v/K9Fw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502883; x=1729589283; bh=rJbuhdzqw3yVwMai2bTpw7S7lmDZ qlwfMKSjNUuR3L4=; b=KNezfQprsUgnnSbC0699JaXQKjsqfdYL3yJY4kSgIm0Q KpZ0OiAf72n5D18kgPjlx5ncpADqfdAWZD2+3lGoynho6EBc5o5F0Xlv02T23LBA BTmcLeSZs7RetWaRajSx07MAN1HQKKZ0qE1SCPL9qQsiRokb3IoGu7Mu5siOtdYP euRbXjlAeXB2nTFsDBdlnvkvfZKx+wRs3gaz6JNfPjZLylONPpbNyNcTRSsn1tAz cTUWdAIa6/T3ff5uZbS3/Q9F9L2KoJ0r+sDVLli/V2gjwQ3zmbktP4o6L7wbugU5 6qMogGIGcfQZ9aBLpXGaCXZjBFQ9da4SUW99EVTlnw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepthhoohhnsehiohhttghlrdgtohhmpdhrtghpthhtoh epghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehmvgesthhtrgih lhhorhhrrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:02 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 12efa2ae (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:26:36 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:00 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 01/22] builtin/ls-remote: plug leaking server options Message-ID: <89b66411354437a1e3a97751f185889dffb84126.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The server options populated via `OPT_STRING_LIST()` is never cleared, causing a memory leak. Plug it. This leak is exposed by t5702, but plugging it alone does not make the whole test suite pass. Signed-off-by: Patrick Steinhardt --- builtin/ls-remote.c | 1 + 1 file changed, 1 insertion(+) diff --git a/builtin/ls-remote.c b/builtin/ls-remote.c index f723b3bf3bb..f333821b994 100644 --- a/builtin/ls-remote.c +++ b/builtin/ls-remote.c @@ -166,6 +166,7 @@ int cmd_ls_remote(int argc, status = 0; /* we found something */ } + string_list_clear(&server_options, 0); ref_sorting_release(sorting); ref_array_clear(&ref_array); if (transport_disconnect(transport)) From patchwork Mon Oct 21 09:28:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843751 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1C591E1C0F for ; Mon, 21 Oct 2024 09:28:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502893; cv=none; b=roVxixXJbFcQrWI1LmHwCwo1ssMiR93iq1tDgwJiUJKd4tfEOZBn26262it0edtvwxjmbT1z7D+9hJ95F1pNr5bRl8zYxup9LwBchypRYrKTGbKkHAW0qVGLkt3WYyiugtyAu7WfNIx9IjEs7bGDxfk/YJdGdXbXS5nwQLy1wtQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502893; c=relaxed/simple; bh=D2fSJQ9+ZxXd0X31e/PhWWFaaUEOfgYFFLUWFhJWKwg=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=PAXza/W+lmCdY2guvOdzPcwPFcy1dLcfSMrynYuv2ndSv7XDA/1EvW2R5dnNJR9uZ+mVzY/IJHVYqGJe+zeKcnvt2TMffI0Ng/whdUHCP3bcOtVygOZgCyObjebQJ5Es4uvdijAG2Km/ZAq0+ybHCnN3yFSo3T6YyEFvy6iSFVc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=t8kO7nzD; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=KCMWpRRf; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="t8kO7nzD"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="KCMWpRRf" Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailfhigh.phl.internal (Postfix) with ESMTP id 2DB421140231; Mon, 21 Oct 2024 05:28:10 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-08.internal (MEProxy); Mon, 21 Oct 2024 05:28:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502890; x=1729589290; bh=ZnOsdoOgQm VepR3/YIUCjUjm/kvhyQCxmoiipYAGtz0=; b=t8kO7nzDoOCGtu5615wOP6dY2A fLu+086zQC84yyQ+c26Xy7kp1s9adkOC0MhYB4FLm4wGj8c1qJxmvG2T9A/AiXy6 iUEBtGKmEVTfXbo+5LvLd/Ewp4MIEImTfHAhlveTfX2cHaPD+np8ZSTTgXdXlF4D GXd97pXTidNPvafh+K6pCkfsRnxGOjOtgsNhA5cWD7ugnCICEk46/uDJMDnqDJUT X/V8TCcAijVxMnIL8/BiRIPFE63RDwZRAEymPhqYGGvhQbnZOqD9h+rYi25HeRAy umX5rzPtCCEee2J05VRkU+fqI8Vs4vNOMpReZhxUAWYbD7gfvRrxM9cJgUeA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502890; x=1729589290; bh=ZnOsdoOgQmVepR3/YIUCjUjm/kvh yQCxmoiipYAGtz0=; b=KCMWpRRf0swbCNZ6/M4Wl3CmFTbgKodkeKczgs6mCu77 tY7/FZPJIJXTO7jxce5zQgAURpDrJJfIvT7zyEQ0Ztq4qSbog1VwP4TE2PQy3sNh ZYkbhkMXZEMtOTHfHut5c1Awaz0ze0GkFXONHi2JDBu/FP1ECGueYfrtXx0tj2n7 KM0Ch+r7rOwfLrDY7nMk25P/RHUseDJOn44thzgHAzL2TSfnIJ5yMXdsOpDLYym7 SK6adnOb4iA4cScJK70eIFoEzClzyGekUme3GUWvHxzWqWBvLP+Dn+RR3NIKQ08B P/NyNLufzxVO1NED1pqqNzchahj5i4y6NmRcTs5kAQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehmvgesthhtrgihlhhorhhrrdgtohhmpdhrtghpthhtohepthhoohhnsehi ohhttghlrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:09 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 877060c8 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:26:42 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:03 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 02/22] t/helper: fix leaks in "reach" test tool Message-ID: <1c42e194b20637ef84c61b62e29fdd9047b1acfb.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The "reach" test tool doesn't bother to clean up any of its allocated resources, causing various leaks. Plug them. Signed-off-by: Patrick Steinhardt --- t/helper/test-reach.c | 10 ++++++++++ t/t6600-test-reach.sh | 1 + 2 files changed, 11 insertions(+) diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c index 995e382863a..84deee604ad 100644 --- a/t/helper/test-reach.c +++ b/t/helper/test-reach.c @@ -127,10 +127,12 @@ int cmd__reach(int ac, const char **av) exit(128); printf("%s(A,X):\n", av[1]); print_sorted_commit_ids(list); + free_commit_list(list); } else if (!strcmp(av[1], "reduce_heads")) { struct commit_list *list = reduce_heads(X); printf("%s(X):\n", av[1]); print_sorted_commit_ids(list); + free_commit_list(list); } else if (!strcmp(av[1], "can_all_from_reach")) { printf("%s(X,Y):%d\n", av[1], can_all_from_reach(X, Y, 1)); } else if (!strcmp(av[1], "can_all_from_reach_with_flag")) { @@ -153,6 +155,7 @@ int cmd__reach(int ac, const char **av) filter.with_commit_tag_algo = 0; printf("%s(_,A,X,_):%d\n", av[1], commit_contains(&filter, A, X, &cache)); + clear_contains_cache(&cache); } else if (!strcmp(av[1], "get_reachable_subset")) { const int reachable_flag = 1; int i, count = 0; @@ -176,7 +179,14 @@ int cmd__reach(int ac, const char **av) die(_("too many commits marked reachable")); print_sorted_commit_ids(list); + free_commit_list(list); } + object_array_clear(&X_obj); + strbuf_release(&buf); + free_commit_list(X); + free_commit_list(Y); + free(X_array); + free(Y_array); return 0; } diff --git a/t/t6600-test-reach.sh b/t/t6600-test-reach.sh index 2591f8b8b39..307deefed2c 100755 --- a/t/t6600-test-reach.sh +++ b/t/t6600-test-reach.sh @@ -2,6 +2,7 @@ test_description='basic commit reachability tests' +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # Construct a grid-like commit graph with points (x,y) From patchwork Mon Oct 21 09:28:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843752 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F7E91E32B7 for ; Mon, 21 Oct 2024 09:28:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502896; cv=none; b=FThQw0RB22gnjqR4EWf+2u8Ep+k/i9BiIfM7ktVQj6dCOlPQvlBQmn6tBc1uPLt0jhks9Z9IbsvqdKgqe1oLRRm+8hfrp1eFyQ9Eohl8osk5Mb1uMrEEB2il1fVgQl7OOEo9dVSKdL2GwwXZ9DNkpAV/NAsrpGJlhpIY8s98WBQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502896; c=relaxed/simple; bh=NK/MCqC/OBLfOutgfCpdP1DJO8djVpJvzwDUXAAIv30=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=uXNdJWo07onjfDZwPB8SGUhF6H0LIcbU73YDDprlvRhj2CkiYwzqowXRiOWXq2JodeRc8GxY1oS0neRAckx85o5J5x/cNT/3tgG0ceLje9+sl5QQgIdKwiKF3QrUU29AqQqb5WvLChjOiSEChSF9CCStNxgj9pwgLLj95Xp5cNw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=YfVR6+ww; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=Gkon7I+a; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="YfVR6+ww"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="Gkon7I+a" Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailfhigh.phl.internal (Postfix) with ESMTP id 5D0191140234; Mon, 21 Oct 2024 05:28:13 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-08.internal (MEProxy); Mon, 21 Oct 2024 05:28:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502893; x=1729589293; bh=18pBriPVSE COFiQaFKdE1JIDU37ak3bibCZdrbp8LIg=; b=YfVR6+wwu7h460eaCAcfv9cfnO vQEqSmDMCZ9l2CC7XbaOW3UK6g4RP2HCHJQFTdIQF+ok9D1gqfdpljjiaWIvnSqV UJvvxxv4iZ3zJxW+tfAUnOIKbWRW8/7JlsLbdDe7G3x+wErZ7L8E83HRDWv3ujbg sy7+Dt9Dw5ZX2Smlmsnxpj9MBNDk5RlWtNjAVdu5kGBiAQ5jOucCSCbn+DmF2thb lS3pCDPWqBioNuHcPoKhvA3ijYUSNuqFT/3AeN+LVnmifqCHXU4URNBNlIkDR1lb ou/wtDjruhg1hjLqvi9Ss+8wJyOJmdYSMc0K/wPdc5yMNUcV1Gy3bKmyXz3Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502893; x=1729589293; bh=18pBriPVSECOFiQaFKdE1JIDU37a k3bibCZdrbp8LIg=; b=Gkon7I+aOHCYhUcHG/dZ3lfJGCU9dARHAQHuSEKmWbFu zJbg+wf/gXj/gxQLzz4YJrKosrKlkgm7WiZqU/NGZIRy91oGcNjWj83ml32eg6Xf iR27aorj6N7B27r7UgDFJ31iEptuwW60xHWUqLNgKOCzpAcNVEMDvN6XaSEMNKDt 21/nICK6pgc79hOiPZMP0ml2OMQ88M5+Kex7g0SiarAnCtVxaHOz55sZDzejN/TF 1KMQfWiUelOhAcZjoXX24W3wmYH6Df+cvwMp3fvJFiLI+l1YTAasrbsN0Rx8GhxZ uTsvp3UxpnestfdNHgO9zgQ24BP7FRqgT1w8z/vw8g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepvdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepmhgvsehtthgrhihlohhrrhdrtghomhdprhgtphhtth hopehtohhonhesihhothgtlhdrtghomhdprhgtphhtthhopehgihhtsehvghgvrhdrkhgv rhhnvghlrdhorhhg X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:12 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 0c418afa (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:26:44 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:09 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 03/22] grep: fix leak in `grep_splice_or()` Message-ID: References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: In `grep_splice_or()` we search for the next `TRUE` node in our tree of grep exrpessions and replace it with the given new expression. But we don't free the old node, which causes a memory leak. Plug it. This leak is exposed by t7810, but plugging it alone isn't sufficient to make the test suite pass. Signed-off-by: Patrick Steinhardt --- grep.c | 1 + 1 file changed, 1 insertion(+) diff --git a/grep.c b/grep.c index 701e58de04e..e9337f32cbf 100644 --- a/grep.c +++ b/grep.c @@ -756,6 +756,7 @@ static struct grep_expr *grep_splice_or(struct grep_expr *x, struct grep_expr *y assert(x->node == GREP_NODE_OR); if (x->u.binary.right && x->u.binary.right->node == GREP_NODE_TRUE) { + free(x->u.binary.right); x->u.binary.right = y; break; } From patchwork Mon Oct 21 09:28:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843753 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 759891E32C2 for ; Mon, 21 Oct 2024 09:28:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502898; cv=none; b=bB6wSXwRmCdvsQQ9XHqm2zpWDziypFDpAanOvpNVfk6X1I89NwffTqLuR9hl5aWAriP7nIi7XyNqxSyjB2B7DyE+t2Xgm2WOOyEu84Y1Qy3ha+TRNECPmGypy1BWjvejzx80/G9LpKzUuz6Sm3wV9P2DbWauTqb8x+EOagsnHWk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502898; c=relaxed/simple; bh=dmhku9I+xjEmIdtx8s4InORSL1GetWMvoaU9hIwWKNE=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=PqL7w5xdYw7F4iKPhnpCoUQSoU59af/iStP5quIFYe6QbJgJu9RbpMUbVZtJ3ywMyeCM+wCuQhaa4GhK2HBtYk0vZY3UZghhaXL3j+hP/M9sZkp45NPeRwMWshlRmTFLA3thGnDUfuqLCNdjzBiLBiVhxDuiH2k8LOh+ns7ufQI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=Z33AKpIU; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=Y6p4e9lN; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="Z33AKpIU"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="Y6p4e9lN" Received: from phl-compute-03.internal (phl-compute-03.phl.internal [10.202.2.43]) by mailfhigh.phl.internal (Postfix) with ESMTP id 818EA114022C; Mon, 21 Oct 2024 05:28:15 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Mon, 21 Oct 2024 05:28:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502895; x=1729589295; bh=fHx/3g08IN oJxKL92997fXzhsl1i94dP+2ktPlSm0LE=; b=Z33AKpIUi7ssQ1Ih3xc5kv+9cL A/CxjSiVA+ilDRKLDfSn+uBmsaCcfg5PlTP/1ZDdw+B6cOlvDZAVdZbcfo3wANkD rdo8GDYMXsSt00QPwuckx3XgFT4esUMYBIWVPmjOYGNm5ke3em3LGX+5WOnAb6d4 rC8KS1OvsBoeLcMmys41sYwjoyBZZkVD2lkdHyjthldDSbXA/8ILjgjHfTBAqx9d wbpBjWF7RPj+sDFUZc8u7qHrwozezoA10Q2dR92BycicOZeK6SE1pZNdJs2AfeHl GYzXH79fkdK+v+lDmd4cxA8/QiBJSzTRXyr1XyWQJbCyb4nsdYxCpAMAjt2Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502895; x=1729589295; bh=fHx/3g08INoJxKL92997fXzhsl1i 94dP+2ktPlSm0LE=; b=Y6p4e9lNnjRuuSWBWAb2L8IAFi3MjYh4PnG5y6QnOMQu f2V+AYxeJwdRVnNTOF5KqGMLnkvEiXnC5xt4/vLbRHZVzOfd06jFQBNTVmA184GA k2S+LwEq8lcScUHYyEiLqEoeHBi58kLZ/PooVOkDY3ScfHzyiiqmc4vR0xBK0mYn No201mPmAaZwIEkAjGIuQRwtqHp0Q1wp45TzSONDpOB9qZ0EuzwY7lhcF2onpPdJ ZOVgZQT/0wkTAVCGplycQ4kuQFhP5aL6PSZLtgc/5+OJipLbqd1oZiJSeG+ynTRt 5jnloVgmgz3xYI2zqvL5h/l2KvSARgCT5lcJ5jAZGg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepmhgvsehtthgrhihlohhrrhdrtghomhdprhgtphhtth hopehgihhtsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepthhoohhnsehi ohhttghlrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:14 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 782a8195 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:26:47 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:12 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 04/22] builtin/grep: fix leak with `--max-count=0` Message-ID: <6b2c8842ef53a3e550aa3de7447c9c3d23bc6772.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: When executing with `--max-count=0` we'll return early from git-grep(1) without performing any cleanup, which causes memory leaks. Plug these. Signed-off-by: Patrick Steinhardt --- builtin/grep.c | 13 ++++++++++--- t/t7810-grep.sh | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/builtin/grep.c b/builtin/grep.c index f17d46a06e4..98b85c7fcac 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -906,6 +906,7 @@ int cmd_grep(int argc, int dummy; int use_index = 1; int allow_revs; + int ret; struct option options[] = { OPT_BOOL(0, "cached", &cached, @@ -1172,8 +1173,10 @@ int cmd_grep(int argc, * Optimize out the case where the amount of matches is limited to zero. * We do this to keep results consistent with GNU grep(1). */ - if (opt.max_count == 0) - return 1; + if (opt.max_count == 0) { + ret = 1; + goto out; + } if (show_in_pager) { if (num_threads > 1) @@ -1267,10 +1270,14 @@ int cmd_grep(int argc, hit |= wait_all(); if (hit && show_in_pager) run_pager(&opt, prefix); + + ret = !hit; + +out: clear_pathspec(&pathspec); string_list_clear(&path_list, 0); free_grep_patterns(&opt); object_array_clear(&list); free_repos(); - return !hit; + return ret; } diff --git a/t/t7810-grep.sh b/t/t7810-grep.sh index af2cf2f78ab..9e7681f0831 100755 --- a/t/t7810-grep.sh +++ b/t/t7810-grep.sh @@ -9,6 +9,7 @@ test_description='git grep various. GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh test_invalid_grep_expression() { From patchwork Mon Oct 21 09:28:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843754 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98DAE1E3779 for ; Mon, 21 Oct 2024 09:28:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502901; cv=none; b=tbl4ylyp6fr5bPpzoDRQ3Rxa9hAi9bo+xtq4hVhQLfne+FIvd71nd05OOex2UQSkx4/ajnoA6f66G2il2uLTCwjNmvgimZhPG40+n1Nfwo9GtszgSbXPvmOKeG5HHIwXPGNPpGXeEmHYoDI64VWV9QreMwXvoEkGu+E4nJJP158= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502901; c=relaxed/simple; bh=11mMtxMqLu5J2bMjsJILoXZ5vDZfIiivuEyII53fQuo=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=G61A8VRuXpiF+i5OT4ZbV7PVmvWVpWP32XweM0qTjgvDaqs3PNyAKs5rNv0/XKIxVBlfLrGF8cE8uZJ1hQdNplitbI0saTN3ARANzVBX0Akc53Bob1erFHCFw6Uvm2opLvkgNpsz4/uYpNvEtyDD6dm+f9HwWoxzYfKotUhjIDs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=q8QrEWqY; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=JIhDM656; arc=none smtp.client-ip=103.168.172.144 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="q8QrEWqY"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="JIhDM656" Received: from phl-compute-03.internal (phl-compute-03.phl.internal [10.202.2.43]) by mailfout.phl.internal (Postfix) with ESMTP id AB1BF13805F3; Mon, 21 Oct 2024 05:28:18 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Mon, 21 Oct 2024 05:28:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502898; x=1729589298; bh=hYZLYbf7wr P+u1Y8dgceXiaOeNPM1auDWc2j3t8Haxs=; b=q8QrEWqYxzrrn5j9bo3EBP3un4 8OA/mmGJdmyetbSnW5YLxcRsPnjN4Y0kHkR2DzCok+zYI66vQI73zgYzC7Z73XXc q/Nup0rD2Gg9Py+FPW3oQvQfbQe06yqLN10RoEkIPnlTS3K5TJ8ewHdbQj4WLmnV ExbCr72A/yWzLHNGhCegfBR1eYQkGc1QjP+vVYMtSmMGzTj2hDOimUef4ZedBSYC AbcK4n88D8AXDnf/vtNnF9h9BCx0O5Jxe2I2rZbo/U6fXNq2R+CUAKqo+LJ61s+o xW2/YfUTIYlZ4+b8otjxlMl+lC0jnJPd7Fxm5wksWgJwidW9sLTeQuzCNgrQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502898; x=1729589298; bh=hYZLYbf7wrP+u1Y8dgceXiaOeNPM 1auDWc2j3t8Haxs=; b=JIhDM656p5/PtC16HkDJ0meWMuXTfvkYQFBbOcAFOL1B uMwNKmBMgxQVBF6J7Bc9HGgLcgFVauSmFzmD8dZnBVjnPjT/8uDi17zhXjx+hPbb BVDv8u2mFdJzlfG9aPodlB0NDY+8PuYM94y0jHn9zdd46qiWadi7HZ+MW5bib5QS 3BNks3Veo72mev6cjxMniVg30ivtEg4kTE90zdxXU0Lp7ktJa8HyJRkzdAEZi4i6 T1aaMezMGlVP/IWdI/IuKeNq/RYQPCLQonD+OyDyzwyXC9NMWIU6fMgp07W4/P5t tz3W/rACiBta0XO1a+kesFUJrzAnTxriJgd1QvxlMQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepvdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehmvgesthhtrgihlhhorhhrrdgtohhmpdhrtghpthhtohepthhoohhnsehi ohhttghlrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:17 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 99d147ab (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:26:50 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:15 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 05/22] revision: fix leaking bloom filters Message-ID: <7527b31a28f4c9d2e689c9749b6f9f0615ba1261.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The memory allocated by `prepare_to_use_bloom_filter()` is not released by `release_revisions()`, causing a memory leak. Plug it. Signed-off-by: Patrick Steinhardt --- revision.c | 5 +++++ t/t4216-log-bloom.sh | 1 + 2 files changed, 6 insertions(+) diff --git a/revision.c b/revision.c index f5f5b84f2b0..8df75b82249 100644 --- a/revision.c +++ b/revision.c @@ -3227,6 +3227,11 @@ void release_revisions(struct rev_info *revs) clear_decoration(&revs->treesame, free); line_log_free(revs); oidset_clear(&revs->missing_commits); + + for (int i = 0; i < revs->bloom_keys_nr; i++) + clear_bloom_key(&revs->bloom_keys[i]); + FREE_AND_NULL(revs->bloom_keys); + revs->bloom_keys_nr = 0; } static void add_child(struct rev_info *revs, struct commit *parent, struct commit *child) diff --git a/t/t4216-log-bloom.sh b/t/t4216-log-bloom.sh index 3f163dc3969..8d22338f6aa 100755 --- a/t/t4216-log-bloom.sh +++ b/t/t4216-log-bloom.sh @@ -4,6 +4,7 @@ test_description='git log for a path with Bloom filters' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh . "$TEST_DIRECTORY"/lib-chunk.sh From patchwork Mon Oct 21 09:28:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843755 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C01B01E32D6 for ; Mon, 21 Oct 2024 09:28:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502904; cv=none; b=QNdJLtm4o8eYKg+N11fkrQ9f4kPEs07eEN8aGd7Xs7GEYm+IbV6WIY6YPmchR+zC/LM583lcXEp+qbhfuobXIZVOTV9kHDC2CiDOS2fosgewXE3plEBIO1fjCY4iqhIr48YCK7iGpl0oss6cr39fRbeeA7nBQy/3Ek63XNbuGtU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502904; c=relaxed/simple; bh=r+s9b7ltUxVwbMsWnkg5xwXA8v3ggAoRifCuLqZ7Ju8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=JWbXCOlIY/RCgmvuj/pXrhoEjapGPc4BgLnAAgOPFo/6dUmu8dYx1gdPlnogDjQWsc0d7Bnx1S3YrW0M7sXc+8R/4zDU59NCaWqkud0iS4Rb71jl1McHBrRznxYH/+2//2z238B5OErDjujqBkIfZRUuJwAM5tfin0KPwc3lK1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=dodc0BeR; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=lOO5nrXa; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="dodc0BeR"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="lOO5nrXa" Received: from phl-compute-11.internal (phl-compute-11.phl.internal [10.202.2.51]) by mailfhigh.phl.internal (Postfix) with ESMTP id D9A61114022D; Mon, 21 Oct 2024 05:28:21 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-11.internal (MEProxy); Mon, 21 Oct 2024 05:28:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502901; x=1729589301; bh=VvzSOmwyow gBCDSs6/DGkUvJZCffkolLEO2myq3vzMI=; b=dodc0BeR0aszJrhNMF4oPAAMfr 71lHEhX9WjNb0w6uMJdfFDP5quYDCtAd34Sm7jrVk5+XCJvCe6nreBoP8nX965Gh j474/CFl8Q14MIOWF/aQE5FkpSQfTcg07VYGDr5jitJEpvubCnVq+yNlOTjPAIxR tFRURpjKJ43RcX8MEGZrlPgDvk2KH1bd4WJxE6PSUFtaVUtiUmWIBsVPS4W5gRML TAewzAREAuGEVzbDaoZhmM23bgVfNfgXdUYfhmqSfEzZB7qOg63jMsed5/8amDBI iqR6clE8EzojwH+w0jO2mnsYD3LFtx6UJGLiCDZ8ExoDN5VIm3isbFTxVZBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502901; x=1729589301; bh=VvzSOmwyowgBCDSs6/DGkUvJZCff kolLEO2myq3vzMI=; b=lOO5nrXad2fUsiZ8ZwKZ0EIckOj7YwFT0Wgl/yf8fYSf Db1sKRbtHZAOwyoRon5+qszy3epMxuJ7DbQ7a8/9syuhfRDdMLsBhDyNe8vqNnov UTE0BWiPYxGtHRY4lIAahOrDLzJMHmFwxsDWzWELuYsj45FC14Qu+FU5DO730/dE We4bKCQZzPrKnpWGPTEDbv+TI4aNu7YZmj1q/8lp0bOnMNT3CSeNiDTzOM72pRpZ TfkgkUaACGUvLuT7J2Lpd5xarMqA/1uDH0wGm4h+xh7DgGL1Ig1bKBa/G8eZi7aq opW0SaCt4Jhq6r6RP1Gp1DtOnKOBQBmvCkES2+NMcQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepgfefueeltdfhfefgteehfffhffegieeukeevteefvefg udelgeegueevudfhveeknecuffhomhgrihhnpeguihhffhhophhtrdhnohenucevlhhush htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpshesphhkshdrihhm pdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehtoh honhesihhothgtlhdrtghomhdprhgtphhtthhopehmvgesthhtrgihlhhorhhrrdgtohhm pdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrgh X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:20 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 6b97451f (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:26:53 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:18 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 06/22] diff-lib: fix leaking diffopts in `do_diff_cache()` Message-ID: <60af98cb2c7752edc7cd5c5fe8173dc5b2522a7b.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: In `do_diff_cache()` we initialize a new `rev_info` and then overwrite its `diffopt` with a user-provided set of options. This can leak memory because `repo_init_revisions()` may end up allocating memory for the `diffopt` itself depending on the configuration. And as that field is overwritten we won't ever free that. Plug the memory leak by releasing the diffopts before we overwrite them. Signed-off-by: Patrick Steinhardt --- diff-lib.c | 1 + t/t7610-mergetool.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/diff-lib.c b/diff-lib.c index 6b14b959629..3cf353946f5 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -661,6 +661,7 @@ int do_diff_cache(const struct object_id *tree_oid, struct diff_options *opt) repo_init_revisions(opt->repo, &revs, NULL); copy_pathspec(&revs.prune_data, &opt->pathspec); + diff_free(&revs.diffopt); revs.diffopt = *opt; revs.diffopt.no_free = 1; diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh index 22b3a85b3e9..5c5e79e9905 100755 --- a/t/t7610-mergetool.sh +++ b/t/t7610-mergetool.sh @@ -10,6 +10,7 @@ Testing basic merge tool invocation' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # All the mergetool test work by checking out a temporary branch based From patchwork Mon Oct 21 09:28:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843756 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DF871E3779 for ; Mon, 21 Oct 2024 09:28:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502906; cv=none; b=dzSIrJZ7DRBhJ1cck9Jwi6eudzvhTNPftwI6AFQNw4Tr/6+6EvMTZ1IwLyXNm6WD/1xrmyII9oxVte4+Z68jPCASECgEFkQ9UqSukGHxBe8RDZLum+87DNIKIpBJOrblerGcea69QNtUI2SoEJYr211TgJWv4y6bgPySu/CCkfI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502906; c=relaxed/simple; bh=C0vImniftHXXcujP3r/ygtW/0eYEl/2J2LdrOLKWGh8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=u63OUdYGQGa7CO3LwSIhzQmJjsxhrRJP3mbTREkq+DMqr0eFpoyddKqApf4DaJ+L3C3r2u+9eufIsyXmG4h0gqZEc4sINVbQ5ShVV/e/OZPL4RtcyegTrDKgQHPjfydVzTydHDd1MMeOknoc6VO8bUQAKEA14coAD0Wi/3sQA+w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=Yg/QF9T4; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=ffAO+YCY; arc=none smtp.client-ip=103.168.172.144 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="Yg/QF9T4"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="ffAO+YCY" Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfout.phl.internal (Postfix) with ESMTP id 39E7313800E9; Mon, 21 Oct 2024 05:28:24 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-01.internal (MEProxy); Mon, 21 Oct 2024 05:28:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502904; x=1729589304; bh=7vdSWX9ttL OB6AAUP8Fl5GjrCSvMpr3ijM46+/B15YA=; b=Yg/QF9T4fg0GrdvdQkaMqHuA1O 5D5hVGbdm3Mv3eh5E/1DUIOfz/l7W4LNoaAyxWhj8zYVVaMECKgblplfJ5NS/Fos nao+FjX1leKcmfuvvjjDN26G70TALHMGB5eot5vePrsbpdy6Pz03yauPmpnLHays uNe4qCkGgLjHRb1BHXzCO9T3xQn4OVvZZrX1vKRhgZ8+gZ7nVcT7Jt4YRQkTd9cD XlgGgdcHunoUCLCiRjGnxf/F4V2SITwxdbPR+yyIH+EV2PnsLsitXXL62SewbMNQ ZkVvUMMb8bDWc5M667emJifDlg2xaZKI6o3vGC8RSBpu6fKRGo9n7quFsDeg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502904; x=1729589304; bh=7vdSWX9ttLOB6AAUP8Fl5GjrCSvM pr3ijM46+/B15YA=; b=ffAO+YCY+kj453wwF3Sc8CUKmXAhDLxtkgYcYwQR9+24 fajUDKL9ifdshmNTATDNOdeDjDS76AelI3eTwHDRElaXEF1RFDICIS5RKtFUNX8J dr9naEFS+8Vx5R8/afqtY9fd0fO9ncJJIudKpM3NqT5hDdQXA+aisVsHZnn8QNFY PXcExvealcccXq6Cxqwas/oGTGtrPewC62/Bqz4XokbkivFYXf9hOP6qvXwdNImF jT11T+u3hHeTpMNGjRnjReHW2MMoDpZkwTXeWyS+29tOudFrsGJYimrlcBCLamw9 pUyBpZf9a5k+jKs4dvjIL4a/WKQYw/WbofD+w5aoPg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepmhgvsehtthgrhihlohhrrhdrtghomhdprhgtphhtth hopehtohhonhesihhothgtlhdrtghomhdprhgtphhtthhopehgihhtsehvghgvrhdrkhgv rhhnvghlrdhorhhg X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:23 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 2396e0f1 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:26:56 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:20 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 07/22] pretty: clear signature check Message-ID: <5d5f6867f918460001f62aaa78f24cf3cbe53a3c.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The signature check in of the formatting context is never getting released. Fix this to plug the resulting memory leak. Signed-off-by: Patrick Steinhardt --- pretty.c | 1 + t/t4202-log.sh | 1 + t/t7031-verify-tag-signed-ssh.sh | 1 + t/t7510-signed-commit.sh | 1 + t/t7528-signed-commit-ssh.sh | 1 + 5 files changed, 5 insertions(+) diff --git a/pretty.c b/pretty.c index 6403e268900..098378720a4 100644 --- a/pretty.c +++ b/pretty.c @@ -2032,6 +2032,7 @@ void repo_format_commit_message(struct repository *r, free(context.commit_encoding); repo_unuse_commit_buffer(r, commit, context.message); + signature_check_clear(&context.signature_check); } static void pp_header(struct pretty_print_context *pp, diff --git a/t/t4202-log.sh b/t/t4202-log.sh index 51f7beb59f8..35bec4089a3 100755 --- a/t/t4202-log.sh +++ b/t/t4202-log.sh @@ -5,6 +5,7 @@ test_description='git log' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh . "$TEST_DIRECTORY/lib-gpg.sh" . "$TEST_DIRECTORY/lib-terminal.sh" diff --git a/t/t7031-verify-tag-signed-ssh.sh b/t/t7031-verify-tag-signed-ssh.sh index 20913b37134..2ee62c07293 100755 --- a/t/t7031-verify-tag-signed-ssh.sh +++ b/t/t7031-verify-tag-signed-ssh.sh @@ -4,6 +4,7 @@ test_description='signed tag tests' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh . "$TEST_DIRECTORY/lib-gpg.sh" diff --git a/t/t7510-signed-commit.sh b/t/t7510-signed-commit.sh index 0d2dd29fe6a..eb229082e40 100755 --- a/t/t7510-signed-commit.sh +++ b/t/t7510-signed-commit.sh @@ -4,6 +4,7 @@ test_description='signed commit tests' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh GNUPGHOME_NOT_USED=$GNUPGHOME . "$TEST_DIRECTORY/lib-gpg.sh" diff --git a/t/t7528-signed-commit-ssh.sh b/t/t7528-signed-commit-ssh.sh index 065f7806362..68e18856b66 100755 --- a/t/t7528-signed-commit-ssh.sh +++ b/t/t7528-signed-commit-ssh.sh @@ -4,6 +4,7 @@ test_description='ssh signed commit tests' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh GNUPGHOME_NOT_USED=$GNUPGHOME . "$TEST_DIRECTORY/lib-gpg.sh" From patchwork Mon Oct 21 09:28:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843757 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 488641E3DE4 for ; Mon, 21 Oct 2024 09:28:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502913; cv=none; b=rK4khNX2OrifXqzGfnZrmheXA0H2OMGjGX8ZQkAR5w6Rf1lYmNFslpnAmrA1c/1dljY5JSUnoWNSyTYyHQOIJYGp+ubVgJpXHF4iframc31hg+Dk+G1v41PTM6/CG7mRt6+ERXuQtdE5v4m5wuAkID+4NW/jKvK1m/3KDLDg4DA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502913; c=relaxed/simple; bh=gNZl+4gCIU2d0oioYOi0nu863rLS4G3Rx86+Au9vmEc=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=cWLSSY3A2mhBuPNY+MDXbEseJJjlsvHfXXOlucJ8z3Cm9nvaf+P1Llp0Xgf3jIxah9zHvOb7EWPKdhOgDEov0vqRYcbTQlAd9ozhRL3BNYOc9OFLi+T6M0stS3cIy0ZbbWK5kFK5ooqpHaD+8KO4/2KOVJeEnhJHTJItXFDYkBM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=e73GgdNV; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=Jfif1JGn; arc=none smtp.client-ip=103.168.172.144 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="e73GgdNV"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="Jfif1JGn" Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfout.phl.internal (Postfix) with ESMTP id 6A1EA1380588; Mon, 21 Oct 2024 05:28:30 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Mon, 21 Oct 2024 05:28:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502910; x=1729589310; bh=BuGZL20xje mPMgSa3Kn1EgXHfPDYVe4kkBhahgCwzuA=; b=e73GgdNVcaqumNXCUEK7u+ABRc uxL7CywgHX/il5Y32UgilOUk7jlW60BHhtKzSc0HfNZZGUin2OXyAJYyZ+uuVUWe Cl4QCfytA/BwVGVvTjxhE7lMkp/WdQ7ot7A1uzxUpeDQpIYoLykgzDBwkEv9T6OZ +qTlsUyB8bt750cXNc0SEDgXelr+xdSTaPE2wze968xCx22DKPnbAIHrNL0OrTob +S+nKGndcppAbhzp9iRK9tkxGBmp3/K60aXRdpgld6oc7NVQB+989O39/eOrHMwo yOJPQ11XQf/wECScTBbe28B8gtyN7DZ500RHEKI4lojfsoYcjB0ubycSdrYQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502910; x=1729589310; bh=BuGZL20xjemPMgSa3Kn1EgXHfPDY Ve4kkBhahgCwzuA=; b=Jfif1JGnLCaYwUOayePyieoHfGGNQsvU+zJbjMdc+59G EW8NBa2jCxBqT0HCGEEPlkzxxIqQwWvlew4R8mKUedBOw1DxBL4v8XKQjvfN6hrl xWkL2IuJ2MbALEjrPmY0bU0POd+JwA9pE5H3nrs0kSO9UCQDO45CTvvq/LPLo3ip nmkRLZGlsbY9n9sdIMAjkjfgsAul5CEqgT1Zeq162NskUzYfKRdj/CtyYF9etVE4 ui7UksoSRuR81LUVlF+Bfd5PHwTOmlkLlqGsZws5J4dH1PQUHrVF3J1QM03wQsE1 2UdomzlbwYrT/VaT3IRP3MqHcRBhVcFQNf9NT1/4gA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehmvgesthhtrgihlhhorhhrrdgtohhmpdhrtghpthhtohepthhoohhnsehi ohhttghlrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:29 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 451d2153 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:02 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:23 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 08/22] upload-pack: fix leaking URI protocols Message-ID: <0d503e40194c5d1912c7dd8a23f685546c490027.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: We don't clear `struct upload_pack::uri_protocols`, which causes a memory leak. Fix this. Signed-off-by: Patrick Steinhardt --- t/t5702-protocol-v2.sh | 1 + upload-pack.c | 1 + 2 files changed, 2 insertions(+) diff --git a/t/t5702-protocol-v2.sh b/t/t5702-protocol-v2.sh index 1ef540f73d3..ed55a2f7f95 100755 --- a/t/t5702-protocol-v2.sh +++ b/t/t5702-protocol-v2.sh @@ -7,6 +7,7 @@ TEST_NO_CREATE_REPO=1 GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # Test protocol v2 with 'git://' transport diff --git a/upload-pack.c b/upload-pack.c index 6d6e0f9f980..b4a59c3518b 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -166,6 +166,7 @@ static void upload_pack_data_clear(struct upload_pack_data *data) object_array_clear(&data->extra_edge_obj); list_objects_filter_release(&data->filter_options); string_list_clear(&data->allowed_filters, 0); + string_list_clear(&data->uri_protocols, 0); free((char *)data->pack_objects_hook); } From patchwork Mon Oct 21 09:28:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843758 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 81FDB1E3DFD for ; Mon, 21 Oct 2024 09:28:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502916; cv=none; b=M8S4NjpKJyQGFDU/G4xCbeETt5ScRcSMhExvugv+trmtUcr4jY7ZQ+k7EKFOclJ2Ujfpc5o+D2dNIeVZznQxgbHQr1iHWUJW7nNZpDtzQvi8kCAqajwLKCqBuFMdskzX1EuCY9CosIdOaoBpzN8SPwSTEogSX7QpnIuoxfy8qYs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502916; c=relaxed/simple; bh=UAKYrUcbROlbaNp+ykPMLh1L83mFuRHVfn24qzLc66M=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=f/216S3iu5YHg70AH6DKD3B7cFGvgxtYTKMF3KNGo/r4DCmjGImpMATwUYcQERVyRp7TJDMyb99CfpAYbL2e0UHVdytdUJvyd8x51wZqp1fw7PSI0Hp2ZtlhwDZF/ukRMSk4v/WNYInuLtaAlmCOmy+kp3lyP+xDlA1brEprAkM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=Z4KOiF8H; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=Nn1ZMPsx; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="Z4KOiF8H"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="Nn1ZMPsx" Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailfhigh.phl.internal (Postfix) with ESMTP id A6BA7114022D; Mon, 21 Oct 2024 05:28:33 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-08.internal (MEProxy); Mon, 21 Oct 2024 05:28:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502913; x=1729589313; bh=YZ+DYH05ae /nJ39gNtsyfX3NXOH71MzlD9cKXEaoFdQ=; b=Z4KOiF8HY5nNWLywCCUtOb5OqW tRwdM9SJxV752QwGgaDcWnyCkfgN43Hqq2ksx5ChT5N8rUSMcGbhYD7PXyvgD7w0 2Fltx26Nb5XtXqgIWZaToXsxZEDZZtHaSpPW4c/u7Mx97XrxkXxtU9phjrDh0Qrk FdTckSyWvOikWEALwXT25akQuvv+kaSoFg8S6rLpZhhYlx+oAGRJSl8tv8fOhRFN h30nxCDt7roJJhp1tt/POzpbsqILxUG/bqi79RJ0fjq8Mkcg4Mg6LvCVDfG8Wk3L 546VbP8G/CFxg+KFKyu43oTC68TBMrQSmn3l2owL6DQSYsJI9twtn6enKRWw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502913; x=1729589313; bh=YZ+DYH05ae/nJ39gNtsyfX3NXOH7 1MzlD9cKXEaoFdQ=; b=Nn1ZMPsxuijzVHLBPaRZpQ+IkHkqT9wp467JAP7V9jKl d1g1cTzkk982wvppE/mRJL5vMMmwwMYCg1dnWJulhDo8y2n5yNH40EGD1f22UWRO kKYU3I+qdljOtGLuocP2a1GDiSO2QLeOtC+aoc85uO6kkcqjDhmGLl4xJ1F+m8el VoS+UZMqy2bV+ZFpZnwIiVtAzM5qcEV8Dirwossmt5GV9uwLz6lYXW15Kgk3TTX9 jZhlpWBmziQOtQBCHgrSWcYt23pApbag6xzZQ2r2bM8Ot+ITO58iWannH+EVWoIG aRPJDirfQRDXLMUngXYFNPhoAeatR/3thGMnNqJoPw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepfeenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepthhoohhnsehiohhttghlrdgtohhmpdhrtghpthhtoh epghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehmvgesthhtrgih lhhorhhrrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:32 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id c6ef4b5e (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:05 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:29 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 09/22] builtin/commit: fix leaking change data contents Message-ID: <9f967dfe5d55ca7150bf3e118279388290f7d28c.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: While we free the worktree change data, we never free its contents. Fix this. Signed-off-by: Patrick Steinhardt --- builtin/commit.c | 9 ++++++++- t/t7500-commit-template-squash-signoff.sh | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/builtin/commit.c b/builtin/commit.c index 8db4e9df0c9..18a55bd1b91 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -728,6 +728,13 @@ static void prepare_amend_commit(struct commit *commit, struct strbuf *sb, repo_unuse_commit_buffer(the_repository, commit, buffer); } +static void change_data_free(void *util, const char *str UNUSED) +{ + struct wt_status_change_data *d = util; + free(d->rename_source); + free(d); +} + static int prepare_to_commit(const char *index_file, const char *prefix, struct commit *current_head, struct wt_status *s, @@ -991,7 +998,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix, s->use_color = 0; committable = run_status(s->fp, index_file, prefix, 1, s); s->use_color = saved_color_setting; - string_list_clear(&s->change, 1); + string_list_clear_func(&s->change, change_data_free); } else { struct object_id oid; const char *parent = "HEAD"; diff --git a/t/t7500-commit-template-squash-signoff.sh b/t/t7500-commit-template-squash-signoff.sh index 4dca8d97a77..379d3ed3413 100755 --- a/t/t7500-commit-template-squash-signoff.sh +++ b/t/t7500-commit-template-squash-signoff.sh @@ -7,6 +7,7 @@ test_description='git commit Tests for template, signoff, squash and -F functions.' +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh . "$TEST_DIRECTORY"/lib-rebase.sh From patchwork Mon Oct 21 09:28:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843759 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B09421E3DFA for ; Mon, 21 Oct 2024 09:28:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502918; cv=none; b=r83AcQKl5nYrz2jt0c6/PDsNX5NodRh492KfNcT+NypJdyOsLhiqRVYlDY+tb6YGxl43DBraBSHQVYFBT3JC6/R16vt2/+zoP0DerOAr/3FEwRAVivEXpsQ7i/QmN5tuHSRH/rvsPvVrvKVyutTx4H2E50Faqa0SFwleGET7b9A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502918; c=relaxed/simple; bh=FQsIlr8FYl8hS+XdjGw0Z0vo0mh3JmW8vkG5jW+rjPc=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=ef0ll/FE46wmrbUTZs3hFL40Uh8UgoqjddCuK/a9Qmtv5EY+xpj4xTjVQMBlKh2KM2IfrFk/htxwGkJVVCheCSjSLQULggvekNrQzgMcXjqBpnVktcVVPuipIRT+x6NOX7RvMC83GdnZ2b8PykYlQNc9hUvVvC+8coVtFN8QfcM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=PUAFXonV; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=hQ+5B3lr; arc=none smtp.client-ip=103.168.172.144 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="PUAFXonV"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="hQ+5B3lr" Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfout.phl.internal (Postfix) with ESMTP id C58D41380267; Mon, 21 Oct 2024 05:28:35 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Mon, 21 Oct 2024 05:28:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502915; x=1729589315; bh=Lp8F+yjwHt d41DHePMtsWb0cKfrAyOG0fG3YpB+rrc8=; b=PUAFXonVUge1d2w+ilE0IUJpmp VXjpmJ4kXPrU3N/9H9/h7YGUYWkYUT/CnFgszVv3tBSEb72vtJNNQzwursc+arYh 58UZd8bJhGh6iXL+ATEvykMWIku4HN18qVdmcwr+Wmazt41d2xJK1aJ5pRlzNm9J IHWzw1Mx+SR78sl87S+R972tETkLUqy130oygQJDF1xt95wL0BZFIGwXfW71m1Fa PsPYHXgat7x9RmbQWwKImhlX7WqXPLli/RsFdEmJBty9VoKyxhklDeylKd3Ms3Fl URQVv6mctIG1QfD06aJW9HmhWci41fVJvwMH1luHn8/5PTVWoTpy6esx7xGA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502915; x=1729589315; bh=Lp8F+yjwHtd41DHePMtsWb0cKfrA yOG0fG3YpB+rrc8=; b=hQ+5B3lrfQlAEPSfanfWb5Y7EKO+EyEXPj4sCIiiwLJ8 BnwKI7dA2y6balIJZwJTTiC8+BK6ivyG7/fQFyp6UUQHVOZomQDMg4BfFbRY6YK9 ZiBPSPTjPepd/abETgb4RjpZ7on4x5f3PwrUs6srmbvba729xIBglKyYnmwef5fJ A1jDwl5TBkIVWOfvRgNpJNrtvoAlJFswBtAUo+A1tMhr9givgElf8c/VSBNuqzLa KMDjZZv8KNeX6Zu8JwBw4AWJtiULNqkQe3QNHgHw26FUiI7XR/szLU3ngELuivAq XSfayMO5otrqvj/ur8+vm/tSOB7LkIitNpD45o9zsg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepmhgvsehtthgrhihlohhrrhdrtghomhdprhgtphhtth hopehtohhonhesihhothgtlhdrtghomhdprhgtphhtthhopehgihhtsehvghgvrhdrkhgv rhhnvghlrdhorhhg X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:34 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id d4434f8d (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:07 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:32 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 10/22] trailer: fix leaking trailer values Message-ID: References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Fix leaking trailer values when replacing the value with a command or when the token value is empty. This leak is exposed by t7513, but plugging it does not make the whole test suite pass. Signed-off-by: Patrick Steinhardt --- trailer.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/trailer.c b/trailer.c index 682d74505bf..f1eca6d5d15 100644 --- a/trailer.c +++ b/trailer.c @@ -249,17 +249,23 @@ static char *apply_command(struct conf_info *conf, const char *arg) static void apply_item_command(struct trailer_item *in_tok, struct arg_item *arg_tok) { if (arg_tok->conf.command || arg_tok->conf.cmd) { - const char *arg; + char *value_to_free = NULL; + char *arg; + if (arg_tok->value && arg_tok->value[0]) { - arg = arg_tok->value; + arg = (char *)arg_tok->value; } else { if (in_tok && in_tok->value) arg = xstrdup(in_tok->value); else arg = xstrdup(""); + value_to_free = arg_tok->value; } + arg_tok->value = apply_command(&arg_tok->conf, arg); - free((char *)arg); + + free(value_to_free); + free(arg); } } From patchwork Mon Oct 21 09:28:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843760 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E110F1E47A5 for ; Mon, 21 Oct 2024 09:28:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502921; cv=none; b=Xj+AdHLNh9bxt6HmP9WXRwETurJCKmLrjT/wLkbJSDDMBsidxKJQbQGTU2etWY0qFJobcrazaVVEPH25n1fE1PFHgRSzKi9c3fSAajI0UbGFEKUFqjoty4hRhknAw0tGXC+QJ9mWOKWZjLg5TRU3jr4YWYX0+lCVm46xJy7l6cs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502921; c=relaxed/simple; bh=IFZ9vSQZDCWi1RT8jVbJ6zQmAlaf9dlFNP3TBNjCZfs=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=V/6EYUIsR6knZy1oahGXCBYzUyfsFXYd/lt3nS14dwjw9qJfshKckZwQy39ai5caxHo6iGIzWjB2B7fmNatUw3zVsaDSFtRTfPp0btOBcxQwpVh0DOpnD2skShlOQRsfJ4VaPmfwRqm/o++0jNbIgTZkFNV+XdkOCi809667kzI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=qM8q6m0A; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=a7uFCbcc; arc=none smtp.client-ip=103.168.172.144 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="qM8q6m0A"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="a7uFCbcc" Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfout.phl.internal (Postfix) with ESMTP id 0CB3E1380267; Mon, 21 Oct 2024 05:28:39 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Mon, 21 Oct 2024 05:28:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502919; x=1729589319; bh=I1qIa4kc4t hWacIytpHFDDEEaKqpY7zQjy26FDACRbM=; b=qM8q6m0Adk+HHS/wJ2+6iT7dXW VYeiwpavJIzneesVzEX8ash9IgZec1raiNrLJCWKMvwzBuDdxOLN02JkbQlxdfN0 ooPKzjZQzJVrHMwvgYCG8QqfYlzZFkNVaaaySm9H+uVUPsb9d4TTK5fNGLit9cIj OgRFiIdJuaMzxf4fjzvHG8rMRDnnHQ5AmmAfLcxrSxlHLoiZoda2+5jWshBT6G33 kfpNej/PKOqn/OGtLMJJCpmRyB/ZwphpYPlzaiqlV9rOS0FXt1bTWe9ktJ2ZMKOl BwTTz98UhpiyPsIC3VPU5SMQ0XFs7MA+THuaWn/sOeW4Ha39ySrIWFr1VXiw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502919; x=1729589319; bh=I1qIa4kc4thWacIytpHFDDEEaKqp Y7zQjy26FDACRbM=; b=a7uFCbccQY+ipguJCS9WA+Bt9pfoGhUtXuZzd6lVurUW L5km71aiD2XapzawKGzESzHZAS5uz9bTud60GhK8sykCtLgveXHAhSLj5seqdu9P rpJhN4egIxE9OtKL0G07ByLJGmubZ13Q8rQvT9KZJ7P2TGt67lmi2kO2SUxNgcii XFpPgoBQCYbUhxCm3FZWEtYFJt/2Z23w/NIMaCmoqOwmZ3mGiZp1gqsavZ7OiZVc fC24pbwJ3PxEyiSQ4ValTyFaXJvARBJ67CCmcGmwMWw6PKBuFYHWhwfOdK7WVdaS QRS0JoLIwTj2ACNQvgOlWkdEcraBjdkV0hXU4AEEOQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehtohhonhesihhothgtlhdrtghomhdprhgtphhtthhopehmvgesthhtrgih lhhorhhrrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:37 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 466604ee (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:10 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:35 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 11/22] trailer: fix leaking strbufs when formatting trailers Message-ID: <5b851453bcea945f95c3f29138e510d8448e96e6.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: We are populating, but never releasing two string buffers in `format_trailers()`, causing a memory leak. Plug this leak by lifting those buffers outside of the loop and releasing them on function return. This fixes the memory leaks, but also optimizes the loop as we don't have to reallocate the buffers on every single iteration. Signed-off-by: Patrick Steinhardt --- t/t7513-interpret-trailers.sh | 1 + trailer.c | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/t/t7513-interpret-trailers.sh b/t/t7513-interpret-trailers.sh index 0f7d8938d98..38d6ccaa001 100755 --- a/t/t7513-interpret-trailers.sh +++ b/t/t7513-interpret-trailers.sh @@ -5,6 +5,7 @@ test_description='git interpret-trailers' +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # When we want one trailing space at the end of each line, let's use sed diff --git a/trailer.c b/trailer.c index f1eca6d5d15..24e4e56fdf8 100644 --- a/trailer.c +++ b/trailer.c @@ -1111,16 +1111,19 @@ void format_trailers(const struct process_trailer_options *opts, struct list_head *trailers, struct strbuf *out) { + struct strbuf tok = STRBUF_INIT; + struct strbuf val = STRBUF_INIT; size_t origlen = out->len; struct list_head *pos; struct trailer_item *item; + list_for_each(pos, trailers) { item = list_entry(pos, struct trailer_item, list); if (item->token) { - struct strbuf tok = STRBUF_INIT; - struct strbuf val = STRBUF_INIT; + strbuf_reset(&tok); strbuf_addstr(&tok, item->token); + strbuf_reset(&val); strbuf_addstr(&val, item->value); /* @@ -1151,9 +1154,6 @@ void format_trailers(const struct process_trailer_options *opts, if (!opts->separator) strbuf_addch(out, '\n'); } - strbuf_release(&tok); - strbuf_release(&val); - } else if (!opts->only_trailers) { if (opts->separator && out->len != origlen) { strbuf_addbuf(out, opts->separator); @@ -1165,6 +1165,9 @@ void format_trailers(const struct process_trailer_options *opts, strbuf_addch(out, '\n'); } } + + strbuf_release(&tok); + strbuf_release(&val); } void format_trailers_from_commit(const struct process_trailer_options *opts, From patchwork Mon Oct 21 09:28:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843761 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 212E81E3DFA for ; Mon, 21 Oct 2024 09:28:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502923; cv=none; b=nGHMTh5pmVXKtOQnMaltwGBlAE4116/YFBX4m6l6IpqZy4Oo6h5HGwEdnu7WoU02k/x5OdKsjb9Xt0aZXaTfLWN626WSPUeFa3+bLBOjiSztyQzVkshK/WDNnWvbZC1wUyhclqaovhqYiFtqlBNZfNw2h+Xg4msDXX6i5y+QDzw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502923; c=relaxed/simple; bh=/s89uG+7hdI+CQ7E4ilUcD570tnhQsD+LpsnrJcpIf4=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=CtUvp2ZqIaCLH5/OB3xLtzshz5XcWhJKIVAza8u+ijx7mpBWxED8lo4csPB/xXM+sdfcjJlXa5M5Z7fVkGuaUKiyquDgrHc959idiWmCHuP2aSKkzk9k/FqNDgzflIkHBci44roBehb3lDeOQsw0nG/g1VqQ1arFpUMeyFCmZPk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=VgvL7W/K; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=gTfQHUQX; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="VgvL7W/K"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="gTfQHUQX" Received: from phl-compute-12.internal (phl-compute-12.phl.internal [10.202.2.52]) by mailfhigh.phl.internal (Postfix) with ESMTP id 4F323114022A; Mon, 21 Oct 2024 05:28:41 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-12.internal (MEProxy); Mon, 21 Oct 2024 05:28:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502921; x=1729589321; bh=e5757l9az1 ozsqUEMrZRhDc+gTVoag7Gg2e/K/WLpXA=; b=VgvL7W/KgVQb3nt1wStFTVpxff vicFgT74kW8234qrXfhHb+zJOuGtBncLxYYbuLVf0zsd8wk/Khi65UGwgQMPtRDI iLRGI93Ojy3xjmPtlGo+MFuZT86mKBC2PDNQMLEnqAmiUPZMIoCbO2reNphPc3Jd +Nh28sr4AN4eQGX2NUAXoReS1iuYjSfv/kejkCKgaKmW3+VIMZIGClgGMXETo2iD R4BooYIJ/bHjStkn61KR+z7D+iJ4s8SV4Ueuqd8ZPIx/eaT5vIhDHCeYd/+fUt0Z 7EC50lDd/I0srgXtBBYeEUR4SjDSuc1VsQmPo29rCGictSIPNL4qKM8TrLQQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502921; x=1729589321; bh=e5757l9az1ozsqUEMrZRhDc+gTVo ag7Gg2e/K/WLpXA=; b=gTfQHUQXWeIcOrQc1kbFqq1CbSRMFuILV3q12PFntnE+ di0yaPGAr+Z00uC70yBlvaH4lvzO/bj+reO5B3B9w/fNl8i+ubhV6bsNN78DOj3E X3ohq9Kz1BjnxQDphKbjs573L7Z30A/BgdEhuMfQBCX/t1XMoomHnXrpwDyYoyyp JuJkYJ7EXJStONw6NmvSZH2XzZ0pLbtum7WLQUv8BjsLAe3tXuis7RRj2xMFFw8F F/eJRC2EfoiO6TeoYGj9Ob5D165g3Go3Uv4gncHLw8kgvE46cDutkzL6n5LpLm8G ju0W8ydTPmMfZubhAGoGJWn7ZcZlT11KhD76S2ECNA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehmvgesthhtrgihlhhorhhrrdgtohhmpdhrtghpthhtohepthhoohhnsehi ohhttghlrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:40 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 23d08834 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:13 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:38 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 12/22] builtin/commit: fix leaking cleanup config Message-ID: <60c3f6146f3d254b80e3b3c8ef3c248b4f9af7f8.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The cleanup string set by the config is leaking when it is being overridden by an option. Fix this by tracking these via two separate variables such that we can free the old value. Signed-off-by: Patrick Steinhardt --- builtin/commit.c | 17 ++++++++++++----- t/t7502-commit-porcelain.sh | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/builtin/commit.c b/builtin/commit.c index 18a55bd1b91..71d674138c9 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -135,7 +135,7 @@ static struct strvec trailer_args = STRVEC_INIT; * is specified explicitly. */ static enum commit_msg_cleanup_mode cleanup_mode; -static char *cleanup_arg; +static char *cleanup_config; static enum commit_whence whence; static int use_editor = 1, include_status = 1; @@ -1387,8 +1387,6 @@ static int parse_and_validate_options(int argc, const char *argv[], if (0 <= edit_flag) use_editor = edit_flag; - cleanup_mode = get_cleanup_mode(cleanup_arg, use_editor); - handle_untracked_files_arg(s); if (all && argc > 0) @@ -1636,8 +1634,10 @@ static int git_commit_config(const char *k, const char *v, include_status = git_config_bool(k, v); return 0; } - if (!strcmp(k, "commit.cleanup")) - return git_config_string(&cleanup_arg, k, v); + if (!strcmp(k, "commit.cleanup")) { + FREE_AND_NULL(cleanup_config); + return git_config_string(&cleanup_config, k, v); + } if (!strcmp(k, "commit.gpgsign")) { sign_commit = git_config_bool(k, v) ? "" : NULL; return 0; @@ -1658,6 +1658,7 @@ int cmd_commit(int argc, struct repository *repo UNUSED) { static struct wt_status s; + static const char *cleanup_arg = NULL; static struct option builtin_commit_options[] = { OPT__QUIET(&quiet, N_("suppress summary after successful commit")), OPT__VERBOSE(&verbose, N_("show diff in commit message template")), @@ -1757,6 +1758,12 @@ int cmd_commit(int argc, if (verbose == -1) verbose = (config_commit_verbose < 0) ? 0 : config_commit_verbose; + if (cleanup_arg) { + free(cleanup_config); + cleanup_config = xstrdup(cleanup_arg); + } + cleanup_mode = get_cleanup_mode(cleanup_config, use_editor); + if (dry_run) return dry_run_commit(argv, prefix, current_head, &s); index_file = prepare_index(argv, prefix, current_head, 0); diff --git a/t/t7502-commit-porcelain.sh b/t/t7502-commit-porcelain.sh index b37e2018a74..84f1ff52b67 100755 --- a/t/t7502-commit-porcelain.sh +++ b/t/t7502-commit-porcelain.sh @@ -5,6 +5,7 @@ test_description='git commit porcelain-ish' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh commit_msg_is () { From patchwork Mon Oct 21 09:28:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843762 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5CFEA1E47B2 for ; Mon, 21 Oct 2024 09:28:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502927; cv=none; b=p9PGZ3/8XXu6Rdme1+8i6Fu+d09eOvDZjUe2KA25mBw3jLJ/1JB+OOyHHoUKdY6TlzFOIU4xAz1jD1yLsNYu05/cmyfofLZ0FEm5HTmBgQuh6QgSfGks5IPectd39f4Xo9X9oFvtBwcw+/Fj2QBrViGfd4AqNUkxmQ4Adxyn4OY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502927; c=relaxed/simple; bh=CoUcUvl7wjry1nkd7JB8gSM3U/7cVBYEK2rUj4VHpTQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=ev0/XiC0+buJLwfKI2/TUq7hhFGnhF/GzJh15eMzXpWESY4TBhmiCRduvVUVUGHGpjuQvVGeJZYvX9JudLI6LVC57TVloYka80wjt/S4/DTFDt/9GyXgmRJVZqxCSgk8Q//bLAZZcqMZmouFQ/QSt9DMGIcezDmM387eMSUg8HQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=qNzRj2wJ; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=MAs1D+M7; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="qNzRj2wJ"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="MAs1D+M7" Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailfhigh.phl.internal (Postfix) with ESMTP id 7EB14114022A; Mon, 21 Oct 2024 05:28:44 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-08.internal (MEProxy); Mon, 21 Oct 2024 05:28:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502924; x=1729589324; bh=Jnxa0HI/OB VE7O259KvPD+PtBB94BmqBqx4/Tq/621I=; b=qNzRj2wJ9SLI+gTeEUomm7s8QZ UhQbGpUoESlXl6+ov+rqFCF0zESvKTBO0Y03vB1dr8tpMHbEEXIQUs7y5WKSIgJa j/NJNawv/pxRTpVMp6ExTxyKvP35/+3E0m5d0pC5U92elIY7a9q/SCfqPVx3hPx1 Yt3WM01oFjiqw/roBLyY7GYhI2qFqK6T/694gMsAGCdQSEf+zMUj+g/hWSdymUj5 tMqo6Qvfklw5p2DoLefJZLtHzxeFWSJIiJxG7jU/qxfyib+RQCS5Nx14raaLt6cO lyZAL1yG2RAtph/SDJBpA6RHMdoGwySb5xuUYk3VyVLjv0JDao6OfeGf6b4w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502924; x=1729589324; bh=Jnxa0HI/OBVE7O259KvPD+PtBB94 BmqBqx4/Tq/621I=; b=MAs1D+M7KqO27dEa4ecmJ9DWxYDC/wmPQq1W572SVHmx 8EvD3EzZlzNbILDXBA1g7FNem36UMDe9caKT4TodqFvD4MgdzrblI0w1126r8BJ3 i5i7GSz867xrRxpXQNjkp9BJ15y22Qi2xMDBPFNW1T6OBiZj5omA8l/lIigPkawM 2dvgPNery/r0w9ebAPl3in5hcIbfvnrypoytDCuW5t4IZxyro0/hn4oYKZ9vRXZ8 F0WCrwtgeqMloVokU8Q0TKdZ9dEUzK6dsFGCPyXwgiuIpR6OEvskzdKornJDSvYp W/Vz0AF6G9l9fT79jUY38Y+Y71HLlL6+bIV+7fVSLA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepgeenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepmhgvsehtthgrhihlohhrrhdrtghomhdprhgtphhtth hopehtohhonhesihhothgtlhdrtghomhdprhgtphhtthhopehgihhtsehvghgvrhdrkhgv rhhnvghlrdhorhhg X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:43 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id e628ff26 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:16 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:40 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 13/22] transport-helper: fix leaking import/export marks Message-ID: References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Fix leaking import and export marks for transport helpers. Signed-off-by: Patrick Steinhardt --- t/t5801-remote-helpers.sh | 1 + transport-helper.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh index d21877150ed..d4882288a30 100755 --- a/t/t5801-remote-helpers.sh +++ b/t/t5801-remote-helpers.sh @@ -8,6 +8,7 @@ test_description='Test remote-helper import and export commands' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh . "$TEST_DIRECTORY"/lib-gpg.sh diff --git a/transport-helper.c b/transport-helper.c index 013ec79dc9c..bc27653cdee 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -399,6 +399,8 @@ static int release_helper(struct transport *transport) int res = 0; struct helper_data *data = transport->data; refspec_clear(&data->rs); + free(data->import_marks); + free(data->export_marks); res = disconnect_helper(transport); free(transport->data); return res; From patchwork Mon Oct 21 09:28:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843763 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9678D1E377A for ; Mon, 21 Oct 2024 09:28:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502931; cv=none; b=RbpnBZBrEtOH5BZUMbklWZ/QKBDCYRqLndKY+IToRIbRzXEig0HBgAgbylKe9LMAjg6RwLhWU9ZhJBMbNuV5SDA8m4sZuwc8V43zqkIfK2cRZykH1kUFFLcZ3JqyNiD422ffUQ5kGpR4KEOF4hmWMI+fcd66z38+fnS0ugZR+RM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502931; c=relaxed/simple; bh=OQGmQSCkfSKjk8fEnuofL7rHrAxYJOdAfxPtpjC1S9M=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=FOIqGBDTVY5wR6YrArPxjjkgJ/l5jPGAW/Lr7INsye5Uk+GYv1vQ3Df3ufwCS8A5HwsC84ipzSr91IhPIuFpKZ66jlBIkmPqS3gNnxRZzPXyiReOgSZH7ZWYneYN3K0j2aN0vfgnjCUtjuQQXofwYsBKvx5FMvHayWVELB6e964= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=1L/NQxho; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=GfT+3BBR; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="1L/NQxho"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="GfT+3BBR" Received: from phl-compute-06.internal (phl-compute-06.phl.internal [10.202.2.46]) by mailfhigh.phl.internal (Postfix) with ESMTP id B43F6114022B; Mon, 21 Oct 2024 05:28:48 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-06.internal (MEProxy); Mon, 21 Oct 2024 05:28:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502928; x=1729589328; bh=bgVzN/KIMS O611sZhY1GbF183+MuJo5gR3wqjpq/22o=; b=1L/NQxhojZ+LN7nyqe6GFcYFty JKBRHOVW6jH1VRAYLc7AchUeu6iRHYmdrSbYty0u/Sg7Aa+Og+mHWl7jA90osZUJ SQoZr8jZUk36wHwWJwMfrG/3TXHxlphtQrE+3dRCa6PLJvSM1ww7awjF8PNvTzSz hO6Q+a3jb+l172rEGrhBDSd55EvY7vTrS5p8hfnhHfWAmd9N2cXaHOxbIyP35WfA 7dj7ytCFYj/d2Mb/YX+cgSlSUBugQi9GSJHyoY4wVMTzBztf8XVC+EuXg0B710zE /Hlfd3FiwHGdqgVzD5EahoPOsw3nDdNdsVg7O1dgxti2v8t9UgUW5UL/Bb+w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502928; x=1729589328; bh=bgVzN/KIMSO611sZhY1GbF183+Mu Jo5gR3wqjpq/22o=; b=GfT+3BBRaGbMnG08Whkgkh6BBk6e7hC5ShyFQXSp7KhY FmxjFV/im1XVk51FerMRYRtTo56iyFkUrJ0nkmIbWEiI+n3O1t1sPyd5Cvd0YJ3j hjRIbjfBInJsZsvAKVq/904V1izBuCxztnqktyknKBvjlU4/arfOyiUbmfN3yC3P RbOD/o8sI0seSn53caobt/DCaJNtOhu0XT4xjZhexA+a2SscIznhrvCcNJuJGsdF 7NOAdYdf9DAmqT6OzqJox4qJ5CAXtLpBBXxIPPZg/76XJKPJ/T0EhY3/LctED/2L gJ6s+pV2PoJgLhtRtL2G6hKZ3rfaXRXivuLHN3X17g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepthhoohhnsehiohhttghlrdgtohhmpdhrtghpthhtoh epghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehmvgesthhtrgih lhhorhhrrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:47 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id d6b0d65d (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:21 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:43 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 14/22] builtin/tag: fix leaking key ID on failure to sign Message-ID: References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: We do not free the key ID when signing a tag fails. Do so by using the common exit path. Signed-off-by: Patrick Steinhardt --- builtin/tag.c | 2 +- t/t7004-tag.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/builtin/tag.c b/builtin/tag.c index 93d10d59157..c37c0a68fda 100644 --- a/builtin/tag.c +++ b/builtin/tag.c @@ -164,7 +164,7 @@ static int do_sign(struct strbuf *buffer, struct object_id **compat_oid, int ret = -1; if (sign_buffer(buffer, &sig, keyid)) - return -1; + goto out; if (compat) { const struct git_hash_algo *algo = the_repository->hash_algo; diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh index b1316e62f46..42b3327e69b 100755 --- a/t/t7004-tag.sh +++ b/t/t7004-tag.sh @@ -10,6 +10,7 @@ Tests for operations with tags.' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh . "$TEST_DIRECTORY"/lib-gpg.sh . "$TEST_DIRECTORY"/lib-terminal.sh From patchwork Mon Oct 21 09:28:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843764 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8FEB71E47BB for ; Mon, 21 Oct 2024 09:28:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502934; cv=none; b=o0bwImBklSAo6gRdxvQ7br8a3+JAO+7qgdUeEYvFc8Q8PQ+70Z2sLKLOkq6q9ggZnxFVOtVPSlHgWNh7tOj7ZCcZwKjOGJbuM3vwjy2sprOSvgXXmsYlyb79EMzAxu7ZzMKrlmOllR73MBVNjKoqlNfnKvYTlC/hbUU2yliIWAw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502934; c=relaxed/simple; bh=ze2W6jwTxIEF7cVucvLNadGu6LsKCHTw+gRQxne+8yA=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=X5HTdTGZ2RYWMS/2SarvrYu8AxkckBFS6FUYQ59h+BEcauVeo9OO/220rmxOEaRVWtUar8i9O1TYwyfwaqmqkfD0tloQTVd9AkJ77qHiZgWkS4mJR/qq19bYXrsbW7XkHf9fwARGB0EC2FNFBI/jodznjl25wqCuCBwwhQxMEsA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=khLIBRyK; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=cNdvJfxF; arc=none smtp.client-ip=103.168.172.144 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="khLIBRyK"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="cNdvJfxF" Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfout.phl.internal (Postfix) with ESMTP id D92111380267; Mon, 21 Oct 2024 05:28:51 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Mon, 21 Oct 2024 05:28:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502931; x=1729589331; bh=+spxKJQ7vt uNMBUccFn9flU8TZnx0g0P60ahbctbYso=; b=khLIBRyKCR6/M0jzBg/bB8uUJo /hdgYYDKfOUOLY0+S+TGjgleuV+u2KECKMTKSXiImMGwQ2gEOtB2jEcF/7BHbipl ZrZC+Z5bySee2Up0iU5JPGQUp1RqnBpmhWudbxGdHR6SCVQS5XdDhk3orOuzPnbd a9rUCmgy0516yJxmNOVXfESnyBDT+cUZ0+m1dRw4NtbkOv8ePOPQK43fMc6cfR6C xrWjj0Qjf+glRk8aqyR2LphilLRYHXM3ajSFPH6aJ214Tsq9uhTJBNvPl0iqJMf/ Qlz74kVnHDZsvh1l4iEV+Prq9m9E6nVVuPakr9uyYp7spvXmY9J9k2kkiJ6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502931; x=1729589331; bh=+spxKJQ7vtuNMBUccFn9flU8TZnx 0g0P60ahbctbYso=; b=cNdvJfxFDeehQvt3mZnr4ZRaQ1i1NLpyiT0EdslEpSSG JfhMqukQaxN5wODtT9CN9X+NLHYbW9Has99lRFNhBiENj4vD+PoF+41jhEOZL8MI HLIp5CRC6B5okGx1RTK9WjgenSbjhDdwoNWT08P8LA24eQ6+6PNuKTF1SprdgDzW lkBjjLZCyse4E2/TkkhGQcKn/pauPsJzmnVvfsH3ZwpHCEJ+Ik1kmm7riVhkDaOq dG6k7ZpzNIrhraToprv9hW5/e9XAxxp86s0H6QCLRwWhOTdhEVBqvqqqHTsNoAhT NraWWMij6SfbZRtc/8oyMcLKHANI/bU9RPTOhTi21A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepfeenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepthhoohhnsehiohhttghlrdgtohhmpdhrtghpthhtoh epghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehmvgesthhtrgih lhhorhhrrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:50 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id a5dc05b3 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:23 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:48 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 15/22] combine-diff: fix leaking lost lines Message-ID: <76bbcb3fe301fe273578a71849f99953ea94695c.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The `cnt` variable tracks the number of lines in a patch diff. It can happen though that there are no newlines, in which case we'd still end up allocating our array of `sline`s. In fact, we always allocate it with `cnt + 2` entries. But when we loop through the array to clear it at the end of this function we only loop until `lno < cnt`, and thus we may not end up releasing whatever the two extra `sline`s contain. Plug this memory leak. Signed-off-by: Patrick Steinhardt --- combine-diff.c | 2 +- t/t4038-diff-combined.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/combine-diff.c b/combine-diff.c index f6b624dc288..3c6d9507fec 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -1220,7 +1220,7 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent, } free(result); - for (lno = 0; lno < cnt; lno++) { + for (lno = 0; lno < cnt + 2; lno++) { if (sline[lno].lost) { struct lline *ll = sline[lno].lost; while (ll) { diff --git a/t/t4038-diff-combined.sh b/t/t4038-diff-combined.sh index 2ce26e585c9..00190802d83 100755 --- a/t/t4038-diff-combined.sh +++ b/t/t4038-diff-combined.sh @@ -5,6 +5,7 @@ test_description='combined diff' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh . "$TEST_DIRECTORY"/lib-diff.sh From patchwork Mon Oct 21 09:28:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843765 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C2AD01E377A for ; Mon, 21 Oct 2024 09:28:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502936; cv=none; b=Gwmxqd15B2JjK81OMaoHuo7CPX1q2es3qpRCXr7NifD4Ck/H1hK3HPME/KcMDLWXpsBwx65yhCYSUZm7IcF1381x+evoCgMr7/H2DNw2doJkAFrnyvV0QfSVYkHWVgXaQRV74NsFxhP+B1ogp7sZhddFi6853t8gcho/EZ8FnaQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502936; c=relaxed/simple; bh=vfqGwKwztC+oC2i0bag8M0NN+s7plvEbGMS9vS8sOEo=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=n4Afy1faGDfYLkxr1qKHiMO3xsS2mBcZEYNYwbYQkG6dxo/wp7oJgu0Lpe4QgTCESJDtI5lKKS5O4vpCyp/D6mCdmzY4O1DW5zLLNYYlD5Lv8bcGpzYmCFJpEdn/rHoXWEAILPydvsMzUbkBSF4OS7HuqJuFsr94Iqdnsrp6IDg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=gfG/xM7+; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=bUL+bPoa; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="gfG/xM7+"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="bUL+bPoa" Received: from phl-compute-11.internal (phl-compute-11.phl.internal [10.202.2.51]) by mailfhigh.phl.internal (Postfix) with ESMTP id 13D0E1140227; Mon, 21 Oct 2024 05:28:54 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-11.internal (MEProxy); Mon, 21 Oct 2024 05:28:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502934; x=1729589334; bh=D6Vl8Vmttv EPW9DxYiUmlnoumtru2EsrmjeH+O72V50=; b=gfG/xM7+JiZgm0UW0C/F49c5yG GrOfJxGJ9QrTqdCcdLv8aCjzcm5saOPg5U04lOZdEgFi3A4oj3MkhBlPTnPUWoHq XZEQFA/es1kFtBtcsbP2NTiRuhUn0LaGbXD1toiN7PDjkj7FbQ13rKt7e5NjHE87 y9pWk0yTyxkuOVbaBcOiazkKm2/noRufMNSbMyoV0xRrfXTbms33et0NI3B2bPb+ HiIxG1n/YsJHeuCUij9aNt3MDkWXiw8ix8pVRPIMso/1q0xOgOSzMMBWzLRwY72P pH1oquv9w+x4E6kXntYg920WaZvOE9mdp0Wxn7Uj+XuxhrVn0xp7sYgCa1NA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502934; x=1729589334; bh=D6Vl8VmttvEPW9DxYiUmlnoumtru 2EsrmjeH+O72V50=; b=bUL+bPoailseElZmMoXXbUWPUyvgm+TzD8GaBLrSn5jf X0eh4MZZ6xXTj1eFZFPq5eELyn2NAHJiMbraFgzO3C6Z/w7cWPFnHvOr4Kj8FVZK ISFJg5guJGLfEZogzeKRXkkFcNLv1VN+AsTvLHd9YOlSeWnhGiSuUYuW1u7J/aGS 0W7R+c2Ql19LvWS4e7e+kbtsxcjiMn44JNXhlr/VUU3XxAjfF579b7EbR+GidzBf SaLSKTvQ7K4YElLt8WTRfeJ83eQXjtJ+yeFG5S8z3gAeJr1nAX4M+fWy5wi4O+QQ F9PjRLd/6vZjF8n4B2+sdL4F0xKgc7Vy2OIzTiDFDQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepthhoohhnsehiohhttghlrdgtohhmpdhrtghpthhtoh epmhgvsehtthgrhihlohhrrhdrtghomhdprhgtphhtthhopehgihhtsehvghgvrhdrkhgv rhhnvghlrdhorhhg X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:53 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 17cdb6c9 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:26 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:50 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 16/22] dir: release untracked cache data Message-ID: References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: There are several cases where we invalidate untracked cache directory entries where we do not free the underlying data, but reset the number of entries. This causes us to leak memory because `free_untracked()` will not iterate over any potential entries which we still had in the array. Fix this issue by freeing old entries. The leak is exposed by t7519, but plugging it alone does not make the whole test suite pass. Signed-off-by: Patrick Steinhardt --- dir.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dir.c b/dir.c index e3ddd5b5296..cb9782fa11f 100644 --- a/dir.c +++ b/dir.c @@ -1056,6 +1056,8 @@ static void do_invalidate_gitignore(struct untracked_cache_dir *dir) { int i; dir->valid = 0; + for (size_t i = 0; i < dir->untracked_nr; i++) + free(dir->untracked[i]); dir->untracked_nr = 0; for (i = 0; i < dir->dirs_nr; i++) do_invalidate_gitignore(dir->dirs[i]); @@ -1083,6 +1085,8 @@ static void invalidate_directory(struct untracked_cache *uc, uc->dir_invalidated++; dir->valid = 0; + for (size_t i = 0; i < dir->untracked_nr; i++) + free(dir->untracked[i]); dir->untracked_nr = 0; for (i = 0; i < dir->dirs_nr; i++) dir->dirs[i]->recurse = 0; @@ -3573,6 +3577,8 @@ static void write_one_dir(struct untracked_cache_dir *untracked, * for safety.. */ if (!untracked->valid) { + for (size_t i = 0; i < untracked->untracked_nr; i++) + free(untracked->untracked[i]); untracked->untracked_nr = 0; untracked->check_only = 0; } @@ -3905,6 +3911,8 @@ static void invalidate_one_directory(struct untracked_cache *uc, { uc->dir_invalidated++; ucd->valid = 0; + for (size_t i = 0; i < ucd->untracked_nr; i++) + free(ucd->untracked[i]); ucd->untracked_nr = 0; } From patchwork Mon Oct 21 09:28:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843766 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 293401E47C9 for ; Mon, 21 Oct 2024 09:28:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502939; cv=none; b=Zpxf4HUF01rlKAJBWyjPykKdLtZGKUoQUriLXVYzmIdGnLfbcOUTo/PzEhYGjGZCr0AJcYCfNAHE2iJquFbtlygSg1l5V8FusGG0cwhiLNJ9A7C5yERwd5MDpoVYmL7MC++iodJMdoUlR2ACnJcGJh8ksJNXW0AII8v6gfKq4gc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502939; c=relaxed/simple; bh=FkBBlyoH1KNAQSKhqT34mXsi5arMIb7M9Jms4/JedWA=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=WeiS+mPSGm5KcNYxvFxE6nSc3HxcDZIvLqIhFsV+5lBpG2ySwDhYJzMLwxZuTIX/Ts8u2nMhAI7IGRFdyiOMP/BtkUbkGmUnL6rlbmGsTV5y9G1t8LsIN4wG+r1kNVFwIRfHzdmA3LyE1BwubqYzT+fGcqK/RuaA9sCU9FdmCtI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=mxwHl8Ls; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=aETkfPMf; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="mxwHl8Ls"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="aETkfPMf" Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfhigh.phl.internal (Postfix) with ESMTP id 4825E114022C; Mon, 21 Oct 2024 05:28:57 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Mon, 21 Oct 2024 05:28:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502937; x=1729589337; bh=LMiyU56njg 9h8odthdkvYbFy7O3nhHjOiFJzweQgGXk=; b=mxwHl8LsEwQN5L9NXDKJPvdIyG qkS8TrENW+WAy0MN0/G339sTBYgJwYxC0cgTQB2pFrOK+fYS0Sk7QT3S1cFLriqr edTCEi20DnHOzKvBZGV85GBu7iPNYoONUCJX7HCYEyUe8fJvL8VjqE6jgvXVWqnr /zEilEP+RLzQ91Kn8nVpU7WhD8fFmplOfuE6N77jVMmVGw4LFh5bTcCnWM/gD78O BmnUppuQVQ+KY6h+lkenotIj4fG41kzHBqKWpE3mT63IV2hzBacZTl/pw240gk9K tlJqHs60bDsSi+h3kHGHxjINkb9Y3aPjdpUbdT4xnaRm9pKZZKwxVJJBOYqQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502937; x=1729589337; bh=LMiyU56njg9h8odthdkvYbFy7O3n hHjOiFJzweQgGXk=; b=aETkfPMfG1MEVU4yiFmzZAtNJnGCgAZRNr8IRfkWgfHv At0v5u25kLjmtSDRJNbjopLxl4CLON6wxS7Yu4x1sZAmZEG80hi1n1tIBLgFreWJ 5EphA9Q9s1B9neeIOsXcoifLK64f5r/rL/2FP4K5QS0RCHFLmFPHRRCLaaF3vrpr fud6Cx7ys+SEzBednIbxMQgg5d6MQXTilFSLCIk2YOYo9GTeGMQ6wXOjN3hFu+cH pItxTCYDTjr7e2tzPTQlh9id2rl3TDM4nvmvFA2Nkr0iTTNDiT2Q5cXbA10wW8Vv /VVVGuPz7H5sWhkJoHoyRKQFaof7CrWq6jalna8NTQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehmvgesthhtrgihlhhorhhrrdgtohhmpdhrtghpthhtohepthhoohhnsehi ohhttghlrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:56 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id fa281710 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:28 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:53 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 17/22] sparse-index: correctly free EWAH contents Message-ID: <3aa6bac50793b2453e5933a5125bb8e146e3f569.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: While we free the `fsmonitor_dirty` member of `struct index_state`, we do not free the contents of that EWAH. Do so by using `ewah_free()` instead of `FREE_AND_NULL()`. This leak is exposed by t7519, but plugging it alone does not make the test suite pass. Signed-off-by: Patrick Steinhardt --- sparse-index.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sparse-index.c b/sparse-index.c index 3d7f2164e25..2107840bfc5 100644 --- a/sparse-index.c +++ b/sparse-index.c @@ -2,6 +2,7 @@ #include "git-compat-util.h" #include "environment.h" +#include "ewah/ewok.h" #include "gettext.h" #include "name-hash.h" #include "read-cache-ll.h" @@ -242,7 +243,8 @@ int convert_to_sparse(struct index_state *istate, int flags) cache_tree_update(istate, 0); istate->fsmonitor_has_run_once = 0; - FREE_AND_NULL(istate->fsmonitor_dirty); + ewah_free(istate->fsmonitor_dirty); + istate->fsmonitor_dirty = NULL; FREE_AND_NULL(istate->fsmonitor_last_update); istate->sparse_index = INDEX_COLLAPSED; @@ -438,7 +440,8 @@ void expand_index(struct index_state *istate, struct pattern_list *pl) istate->cache_nr = full->cache_nr; istate->cache_alloc = full->cache_alloc; istate->fsmonitor_has_run_once = 0; - FREE_AND_NULL(istate->fsmonitor_dirty); + ewah_free(istate->fsmonitor_dirty); + istate->fsmonitor_dirty = NULL; FREE_AND_NULL(istate->fsmonitor_last_update); strbuf_release(&base); From patchwork Mon Oct 21 09:28:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843767 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5CC0A1E47CD for ; Mon, 21 Oct 2024 09:29:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502942; cv=none; b=Rlq9VEQqX/KoCqM/vQX8ztGHO/jWHcSpt8LxqYqlQgoJNN4pZGXSiXuqqsqrUNLvOdOontKRGJUCWcC+d7zcfv/XAEPjhAtqGejv2PvowXVS3ppEkolalz51BWe/p6Q66Ute1QRfsSG4wzevd4bYO+COuZvS8YQyFsDUJq//hGg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502942; c=relaxed/simple; bh=LrEIcppuUohX/9sYgxq9g75mG4cERVIWSutju8XcBQk=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=CAlv02KOrBr2eHRqRy5I57+V1Cd3ImqkTjIUvl3Uhktu0q7fQ26sDjNY8IHEB++HTLQT+TZvQaKs74fJ64GPGdtT8U8JqB+Jnu6E791yAu/iijqaXG9VVgYxz+Y9ObstdeTpmRIG+JsJx+OcAI32gKNCZ8UZ9BHIOD32AqYyH5c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=0sccfW7q; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=POHCBcS7; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="0sccfW7q"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="POHCBcS7" Received: from phl-compute-12.internal (phl-compute-12.phl.internal [10.202.2.52]) by mailfhigh.phl.internal (Postfix) with ESMTP id 6F439114022D; Mon, 21 Oct 2024 05:28:59 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-12.internal (MEProxy); Mon, 21 Oct 2024 05:28:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502939; x=1729589339; bh=SPdkmEcqLP Lf0qgPODV1uPepi+bcqh+gFmXFNZmg+V4=; b=0sccfW7q1xA4mWinQQ+L7npOYQ Isko1syXzkYy7otlxDvvWGopo/ZdZOWhpVoNAO3Qd1LPQWtpzm2sBdoNrFlfLVav 7tJgE4HACa/0o7OICWU0ptztQ5HLh4S6ry0PuCg+swDmvXiTI7D5UpSj8FEKKLqg wASvQM+6Y7QN4+ph6sYJWfsOx5c3/cn4VOlp9lJnWEmcyTlAwoAOnigiPAocLg20 t/sw55PDjKThJtArY5rx3mCJOzHRVgntRmaGpTlnFZBt5pYzFP/6LBrsCncywAf+ GzrisDvjBuIBQMEinSLTOLzyGTg+QXkfH7kou0g4if+2w5m5glffJoAtZd6w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502939; x=1729589339; bh=SPdkmEcqLPLf0qgPODV1uPepi+bc qh+gFmXFNZmg+V4=; b=POHCBcS7Uhj03uNpC7iH/lmzxafYpswVuuFdKsfF4nur dpv6W73qjjiRAszb9Ujy1fECXQSQcbf0+tMqTlbE8zlVphWZiAXUOJAILlKWeK6V P/w49OMWPj1S+NcPslLGIx+coKfNSkNmAp1fhIkwDClpXuasmZdXBBhLxzSPtueB lMFUzz+WvclRnXCsvq8jG7pTtBkfyBaAO7apOrWzJ7BJwmq5SWPgmpfn0AOORPOm LixME2hKrsIMoJpjBYGTbPu2zixu/2/Z+wxP0kId0VCLdPeFQYBKh2bRAAQ/FeX1 biMlpeSClF9G4xUKzGee6YOfscHtNRAdqV2vSE91Gg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepthhoohhnsehiohhttghlrdgtohhmpdhrtghpthhtoh epghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehmvgesthhtrgih lhhorhhrrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:28:58 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 0de0e157 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:31 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:56 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 18/22] t/helper: stop re-initialization of `the_repository` Message-ID: <132fe75090656ee05198512b95acfa6eaa33f3e2.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: While "common-main.c" already initializes `the_repository` for us, we do so a second time in the "read-cache" test helper. This causes a memory leak because the old repository's contents isn't released. Stop calling `initialize_repository()` to plug this leak. Signed-off-by: Patrick Steinhardt --- t/helper/test-read-cache.c | 2 -- t/t7519-status-fsmonitor.sh | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/t/helper/test-read-cache.c b/t/helper/test-read-cache.c index d285c656bd3..e277dde8e71 100644 --- a/t/helper/test-read-cache.c +++ b/t/helper/test-read-cache.c @@ -11,8 +11,6 @@ int cmd__read_cache(int argc, const char **argv) int i, cnt = 1; const char *name = NULL; - initialize_repository(the_repository); - if (argc > 1 && skip_prefix(argv[1], "--print-and-refresh=", &name)) { argc--; argv++; diff --git a/t/t7519-status-fsmonitor.sh b/t/t7519-status-fsmonitor.sh index 7ee69ecdd4a..0f88a58a819 100755 --- a/t/t7519-status-fsmonitor.sh +++ b/t/t7519-status-fsmonitor.sh @@ -2,6 +2,7 @@ test_description='git status with file system watcher' +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # Note, after "git reset --hard HEAD" no extensions exist other than 'TREE' From patchwork Mon Oct 21 09:28:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843768 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 60A721E47DA for ; Mon, 21 Oct 2024 09:29:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502945; cv=none; b=tGeW/AjyCmFfh4f2n8CKCcJ8gkf0RhPG/C7cEvASO5lYF/NphfCR4LhQD1aTGmk/IYDZ3F92fCJJ/z9hCmZFKJJwS/geEPzMnDbp70IUZkYXHe7iUKQZbBnnt9RAUuOGkhkbo8CTmS2CFSeJmCPNYaxAYmSXEUZVA92eML8fQkw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502945; c=relaxed/simple; bh=LJ9+Sj8zD952kM4HrLaDrMhiVCGlDPFPW7u1hzyPoRg=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=pDBcYHYAUc3ZlwyZNJzetz6momu6zEUi/TYAj3gFr75QIn8+jcu7W2rFJVCFm01NioLK/8F2W2NLA3x0XiDKiriENYykJ86mKfVerTGDvu1JWtEYMJlbtOqne5sOLqlhSvUV40QpW0pKkMA7E0XTbL3faG8Fs5x+/zXZg2+RFEU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=guoTF1+8; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=E2NPZ1BU; arc=none smtp.client-ip=103.168.172.144 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="guoTF1+8"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="E2NPZ1BU" Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailfout.phl.internal (Postfix) with ESMTP id A985213800E9; Mon, 21 Oct 2024 05:29:02 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-08.internal (MEProxy); Mon, 21 Oct 2024 05:29:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502942; x=1729589342; bh=XLCvzyic5h ngx5Lg6s8CN9+gHnWuecWTCs4DglQol6k=; b=guoTF1+8Muk0kxPAR6NVSCkOg0 a5uz8IzkBkFEE7RRKNlWQxpCrx+JX0r4TPim75Vm/3ZHxa7JjimA6i6WMXbvoJ+n glG6e3ZlLnuACFzaKZBrPxdCKBZjw3w/jYOhefaFBorLCGO/6wCc51ZpCEl0TgLH szz8ti0kx8CXKrqK4LXZ/HJGtCAUrdbPukQkUqNLDt0qVRhk1ZhnYKSHCyjqQ0TW l99Vv8TldewFnv2S2TFv2WCO1eOjLGsnhG2iys8jh6ZKIEu1ZMn9PyWGmZW+MVO+ wLd8BLa2RUyZm8oNwII6JEd7pew7/Elj/gOgKWR8Ivfa+xKZjwJs7NFo0K8g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502942; x=1729589342; bh=XLCvzyic5hngx5Lg6s8CN9+gHnWu ecWTCs4DglQol6k=; b=E2NPZ1BUrwi4dUIqAs85ma6dMp2nYreLKWaJBYKv1B01 L7mQ8ZJZJv4e1OgTuXf0zozr3SNUBo1yDwh1aRBLNSNi2ok5GiPY1tZ8GzpVcOe/ 758B5RcI/MNO7p2HrmVWsk0izOymIVbLNONG2JaTMRvWxUB1AD2OpAAotHygdw5v 9up+Ip2KuoAzcOg5nGKdKpo3ctpp0XkqjqXgU0Moc0rHgtzT7hai0MTStjvgbocF ef4VYumwqLAC1bNAM/jkhS7leZFWjdwyLtJv9jRDUt0Qgyi3MeuyzufvfVVc6fSR oHieA9vuWprfOoLheKAeIDr0uT/JQmHVvvPY+S4VXw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepheenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepthhoohhnsehiohhttghlrdgtohhmpdhrtghpthhtoh epghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehmvgesthhtrgih lhhorhhrrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:29:01 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 167d18fd (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:34 +0000 (UTC) Date: Mon, 21 Oct 2024 11:28:58 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 19/22] t/helper: fix leaking buffer in "dump-untracked-cache" Message-ID: References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: We never release the local `struct strbuf base` buffer, thus leaking memory. Fix this leak. This leak is exposed by t7063, but plugging it alone does not make the whole test suite pass. Signed-off-by: Patrick Steinhardt --- t/helper/test-dump-untracked-cache.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/t/helper/test-dump-untracked-cache.c b/t/helper/test-dump-untracked-cache.c index 4f010d53249..b2e70837a90 100644 --- a/t/helper/test-dump-untracked-cache.c +++ b/t/helper/test-dump-untracked-cache.c @@ -68,5 +68,7 @@ int cmd__dump_untracked_cache(int ac UNUSED, const char **av UNUSED) printf("flags %08x\n", uc->dir_flags); if (uc->root) dump(uc->root, &base); + + strbuf_release(&base); return 0; } From patchwork Mon Oct 21 09:29:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843769 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8FB6A1E32D6 for ; Mon, 21 Oct 2024 09:29:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502950; cv=none; b=fqH/i/7t4FF7jgmJJMjNXgjeh2fsNivM8Fi+dbuAn9nOGoZ9/zCppemRMd4eAK2Gmxp5TTaxescH0DNrihuhCXrjtS12TSyK7TXKb6bDeo/qCV1aYYwOKgbv50tgpg6dV4lszEBHbvnVoATDZIxEmux12jybsEoPBUp3WjKy+HE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502950; c=relaxed/simple; bh=3U4sz1CHCWB0UIebhkHpDUe482hKK6FSRy6IxVO4ky8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=kuwGUusmj9cMyLJ7OaD6+azcmmbgSwGwfD2qWOxsZQLhVlCwPWAQV76nW4rKWi5p/HQ64EdQm+/vClh4TtWQnfoVDX0T4WHq/UKscRuC1uWS3OSr39OPxUN0uL/0FFr/36uCGr01ikYqrXOi/lqvXJE8Y6k7sC0kSNxZ2AX0Ft4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=4eIdH99B; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=mpTsmv7f; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="4eIdH99B"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="mpTsmv7f" Received: from phl-compute-03.internal (phl-compute-03.phl.internal [10.202.2.43]) by mailfhigh.phl.internal (Postfix) with ESMTP id DA27C1140227; Mon, 21 Oct 2024 05:29:07 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Mon, 21 Oct 2024 05:29:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502947; x=1729589347; bh=jeF21Y5V1h lZSiJPMXn3RDJJd/W9lMwXhALyxDg6bFU=; b=4eIdH99BduK2BxqhyJ5/V0U4aH oxLsaLTqKSo/mTJULbvoA/Qw/9c43l3faeqeKAU/gr9BEFJTDyImkdBkAr+i60mp xS8AovNsnoSzlYzZQuniIIxoQDGLJjdGXIwcB/aC6sr947UEt4YFY79ZQSY1uTX2 PJCQbIEnr1C92Qk1ThG6bAICVVUi/YJxBmnUcxfgy4HCZ2aJmtkusWAtuYzqYhk3 OIXYZWTLXQcR26BinaIqIuNbr0eNp0YLH8py3LKiGj0hFY/T4kMGJxa1DGOh36jP 0LxxaO977w8hNTVaQ7/wH0lI6enp+Sfuy1xhuzjFaw9sWp1Sf+0kAcJaEX+w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502947; x=1729589347; bh=jeF21Y5V1hlZSiJPMXn3RDJJd/W9 lMwXhALyxDg6bFU=; b=mpTsmv7fY+TzOZCiuBFC7GzMdVWx4nz2KvOiRWqAxn0f UhZ1iQ9/EGgdHhiRLA0vHKZVIpGk0eLaEuH62NiqGhBm38jJtPncgNgikL7ks+22 U6lKYqfO6Z6NOwCFoVHiIb3xBhztw6aF/Kt8msV8x7qZinnkxkOKWneF3bWbo13l 5vSf7IfzzAhdCVLSk87MpnPfDo+JCOkY8mKqZCBD636sisrlOqBwcRPI8d7TJGJ3 t6hFGaCJCC+CntGxZ5dzR2IL90HOEi7MtbSWXH8QV55iT5dBNIgHbipdTDoCMAuF bqL/b0H9UmwqSGNh4uJqngx+iIJcBazbi9+6Q1mF9Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepfeenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepthhoohhnsehiohhttghlrdgtohhmpdhrtghpthhtoh epghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehmvgesthhtrgih lhhorhhrrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:29:06 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 911b0ecd (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:39 +0000 (UTC) Date: Mon, 21 Oct 2024 11:29:01 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 20/22] dir: fix leak when parsing "status.showUntrackedFiles" Message-ID: References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: We use `repo_config_get_string()` to read "status.showUntrackedFiles" from the config subsystem. This function allocates the result, but we never free the result after parsing it. The value never leaves the scope of the calling function, so refactor it to instead use `repo_config_get_string_tmp()`, which does not hand over ownership to the caller. Signed-off-by: Patrick Steinhardt --- dir.c | 4 ++-- t/t7063-status-untracked-cache.sh | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dir.c b/dir.c index cb9782fa11f..7f35a3e3175 100644 --- a/dir.c +++ b/dir.c @@ -2872,14 +2872,14 @@ static void set_untracked_ident(struct untracked_cache *uc) static unsigned new_untracked_cache_flags(struct index_state *istate) { struct repository *repo = istate->repo; - char *val; + const char *val; /* * This logic is coordinated with the setting of these flags in * wt-status.c#wt_status_collect_untracked(), and the evaluation * of the config setting in commit.c#git_status_config() */ - if (!repo_config_get_string(repo, "status.showuntrackedfiles", &val) && + if (!repo_config_get_string_tmp(repo, "status.showuntrackedfiles", &val) && !strcmp(val, "all")) return 0; diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh index 8929ef481f9..13fea7931cd 100755 --- a/t/t7063-status-untracked-cache.sh +++ b/t/t7063-status-untracked-cache.sh @@ -5,6 +5,7 @@ test_description='test untracked cache' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # On some filesystems (e.g. FreeBSD's ext2 and ufs) directory mtime From patchwork Mon Oct 21 09:29:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843770 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC52E1E3DCD for ; Mon, 21 Oct 2024 09:29:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502952; cv=none; b=CNoJYHv2W8BHFFNfsytNDMBokd9qZC6IfjXVeaYEXlMQxmhXgxBtv5r5d/VT1lqBlSC1JjnCD9msp9OX3fjT1Ytd/woa3Y124HunzGIGp4Jff9+0kn0kCBX94r/XhXkH7TmPb5avNjVrq4Jzb9+Vnig8+3VQTH2aX78IuOGEhg4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502952; c=relaxed/simple; bh=jg7CdAOpc3NRbh8h64MLuFA2kU0taHW8V1xMIQG1uwc=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=h8+9NAO+M+A413nXUxqdNkI3XI0mIzYsDz6eafDfEk8pwRPnMhVwXGAdLUngS2s+jgd+dLe8DaTiyC3bakUjVu0nAyKnLFXHZBYm1q2njutBtuBSrbslQeEx0eL+58tQ9Zd6dWdQ1MdWBHVDB/SIZInqC9uilCmOFjp4mTUomIE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=YJqJKj0s; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=dPacyH4R; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="YJqJKj0s"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="dPacyH4R" Received: from phl-compute-03.internal (phl-compute-03.phl.internal [10.202.2.43]) by mailfhigh.phl.internal (Postfix) with ESMTP id 1BC2511401BB; Mon, 21 Oct 2024 05:29:10 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Mon, 21 Oct 2024 05:29:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502950; x=1729589350; bh=PEN28oqqIX f8IMKt/qx0Lz4xq1xrxDEu9ibMoXDoq8Q=; b=YJqJKj0sBkOkMNDNcNKGH+iMHi VaUvO31H4kEoSFGhtose2L0o4/Qv7AXOCYHIwNqR3jacbGtmN0aH/lA3jJh98gFS LUQ/EFyJebtCqwpq6i5nDsIfkB63IPLjRfOP07OizvfRjcnxIuVcjFphRRx/dr7b VtlF/CBVKUgfhe0vzdbftCeO6jMkFdddCP/h+D1kLjtKHdxl/Ezpe0ECnipt8s1c boFQjqMYVr3CmgULuQcgldkB9wjB97X+GwNwK8XzRFzrs1nLcrI7jLhsQ4WBIM/8 3uzKI4vAAXy7k9PJ6yAyZ+odNQQP1gPAqtsCGuTXk0StZEAXBrsh8tW5vRPg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502950; x=1729589350; bh=PEN28oqqIXf8IMKt/qx0Lz4xq1xr xDEu9ibMoXDoq8Q=; b=dPacyH4RtiIbphQ0b1VQK8dWQFZ1kXcfrwGQ57EWi//s UC9JTYytwMfH8Cbl9Wb7VxI26BvMyR/6q8Zy5yOwB3BVMhpYN8tFTbzLfdszeg62 atz/aqJUT3kWGRQ9j31035+RlBTwThLzqPzok01eqQo23Shy29YRC64p/ZPjhGWp H7KHHyDggjCAfDi1vYkkrVb3OhKIN9TQL4eZY1cIiT7MZQbfsirj8JCNDeZU9AVD 285jGjpIiUzQ/DX74zV6Z1iNf8PjqA1672146JMN3or1SzL7XQ1QFkpMnCS1gHMP SPM40RuzwyWZazMC9XSt/dks0/jck0tv4pXHqWIL7Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepfeenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehmvgesthhtrgihlhhorhhrrdgtohhmpdhrtghpthhtohepthhoohhnsehi ohhttghlrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:29:09 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 19d91ef0 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:42 +0000 (UTC) Date: Mon, 21 Oct 2024 11:29:07 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 21/22] builtin/merge: release outbut buffer after performing merge Message-ID: <5e243f9ee530da417beda9230f65ccf18ae21a9e.1729502824.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The `obuf` member of `struct merge_options` is used to buffer output in some cases. In order to not discard its allocated memory we only release its contents in `merge_finalize()` when we're not currently recursing into a subtree. This results in some situations where we seemingly do not release the buffer reliably. We thus have calls to `strbuf_release()` for this buffer scattered across the codebase. But we're missing one callsite in git-merge(1), which causes a memory leak. We should ideally refactor this interface so that callers don't have to know about any such internals. But for now, paper over the issue by adding one more `strbuf_release()` call. Signed-off-by: Patrick Steinhardt --- builtin/merge.c | 1 + t/t6424-merge-unrelated-index-changes.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/builtin/merge.c b/builtin/merge.c index 84d0f3604bc..51038eaca84 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -754,6 +754,7 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common, clean = merge_recursive(&o, head, remoteheads->item, reversed, &result); free_commit_list(reversed); + strbuf_release(&o.obuf); if (clean < 0) { rollback_lock_file(&lock); diff --git a/t/t6424-merge-unrelated-index-changes.sh b/t/t6424-merge-unrelated-index-changes.sh index 7677c5f08d0..a7ea8acb845 100755 --- a/t/t6424-merge-unrelated-index-changes.sh +++ b/t/t6424-merge-unrelated-index-changes.sh @@ -2,6 +2,7 @@ test_description="merges with unrelated index changes" +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # Testcase for some simple merges From patchwork Mon Oct 21 09:29:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13843771 Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5C101E3DC0 for ; Mon, 21 Oct 2024 09:29:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.157 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502955; cv=none; b=kkWuma1KiA4YqMw3Z5KNmq7oeydsqEvWk8tmPP1bIKtIGyaEkA6ckEy/p1HmzA0x+KvC64plDykZoz4aZKmLcUCelSXPGSoRKZwosdMGea+Ub6Pp2+RjW7+HdEuSKNdDAHV6cqA158eFRREfGpGJPMfzPyW1r7hwpN+QKS2kTWk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729502955; c=relaxed/simple; bh=hcoeNWjAQzGT17gahS/yQSLjHK/OmG3PPhIXdKHmpZY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=aQ7mTjz9MJD56lXAmBd1BwAHNrefF1xj8n7YrhYDbQfynEQOWtMrjD+yaR+i+kiRMwkBSOYiUuNqKKdZHlYkyQ2CXyiA+I+IjhlRTMt8xLqU13s3MlwgXdHr4ZyocYfF6R7izMndkq1OVaempwW4iylMj6AWFW4/d9B4T2N88HA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=ijsevSHX; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=l9RgFmFF; arc=none smtp.client-ip=103.168.172.157 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="ijsevSHX"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="l9RgFmFF" Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfhigh.phl.internal (Postfix) with ESMTP id 43D8F114022F; Mon, 21 Oct 2024 05:29:13 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Mon, 21 Oct 2024 05:29:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729502953; x=1729589353; bh=wNu1S4W8az AR0pIdonZe+ztpXP0zj8p5X3TWbUA54D0=; b=ijsevSHXzogdCOhTl1f0D6PRFs JSkXPVnsSn9IFXlpT/qfUphvBVcOEcqgMCU+y6mwUXEqp4gHSEqbWmq3/SgJAd7+ jaY3wWH8dlX2O1PtG9KZvXw5AlYxIizGdce3pHs65TUPVvByeWeb2dikd55/W4IO +CCm5XbdCPASTfINcHndZjI2cakq+FS9ptxKK2uCK2vo+tunyemrIXTzUL0VRBdy +wvI2dOGxM9pbrqjENZZwuxwLTS4uy7Yg16h4iLvoxUby/LuM9s52kq4esrsWkoN cK6hVyWGUog8BeqozjJ0jl54JPG3qYy/P0WrAHZmakE7AOeR/nZKztjrCsrA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729502953; x=1729589353; bh=wNu1S4W8azAR0pIdonZe+ztpXP0z j8p5X3TWbUA54D0=; b=l9RgFmFFZO9YvlGw41BayBJYyzwyqnb9CQPkjAG2cvl7 +T7iTt9y8bxBE5vtc5ThXxW400Z3rmdsicyrlFZ4E8ma78IZgMCQ5DkO5ooKs5if Klju5I0G9dNgyh4DK4eO/XJK8CVrb9oGoVmkhESTOg/ocfCqwBbTLvdzaOPZDUP2 V6JpP/ynJcgZYiXCFyPnsiGVlcr4TT4pHYu9s5BKiEyPRRu5Urb5cH6TGGeRZiIi q36lK7g7j1JeDipNGMsM+QFO3PwjEL1XZkYTR8QcEzsrFg8eSRghgwDIT/e+mCxo BFRTLWSWn8JAsyQx1ZGDSsub/2MqcNtRJMMZf+uELg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehledgudeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgepgeenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepthhoohhnsehiohhttghlrdgtohhmpdhrtghpthhtoh epmhgvsehtthgrhihlohhrrhdrtghomhdprhgtphhtthhopehgihhtsehvghgvrhdrkhgv rhhnvghlrdhorhhg X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 21 Oct 2024 05:29:12 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id cef469a2 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 21 Oct 2024 09:27:45 +0000 (UTC) Date: Mon, 21 Oct 2024 11:29:09 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Taylor Blau , Toon Claes Subject: [PATCH v2 22/22] list-objects-filter-options: work around reported leak on error Message-ID: References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: This one is a little bit more curious. In t6112, we have a test that exercises the `git rev-list --filter` option with invalid filters. We execute git-rev-list(1) via `test_must_fail`, which means that we check for leaks even though Git exits with an error code. This causes the following leak: Direct leak of 27 byte(s) in 1 object(s) allocated from: #0 0x5555555e6946 in realloc.part.0 lsan_interceptors.cpp.o #1 0x5555558fb4b6 in xrealloc wrapper.c:137:8 #2 0x5555558b6e06 in strbuf_grow strbuf.c:112:2 #3 0x5555558b7550 in strbuf_add strbuf.c:311:2 #4 0x5555557c1a88 in strbuf_addstr strbuf.h:310:2 #5 0x5555557c1d4c in parse_list_objects_filter list-objects-filter-options.c:261:3 #6 0x555555885ead in handle_revision_pseudo_opt revision.c:2899:3 #7 0x555555884e20 in setup_revisions revision.c:3014:11 #8 0x5555556c4b42 in cmd_rev_list builtin/rev-list.c:588:9 #9 0x5555555ec5e3 in run_builtin git.c:483:11 #10 0x5555555eb1e4 in handle_builtin git.c:749:13 #11 0x5555555ec001 in run_argv git.c:819:4 #12 0x5555555eaf94 in cmd_main git.c:954:19 #13 0x5555556fd569 in main common-main.c:64:11 #14 0x7ffff7ca714d in __libc_start_call_main (.../lib/libc.so.6+0x2a14d) #15 0x7ffff7ca7208 in __libc_start_main@GLIBC_2.2.5 (.../libc.so.6+0x2a208) #16 0x5555555ad064 in _start (git+0x59064) This leak is valid, as we call `die()` and do not clean up the memory at all. But what's curious is that this is the only leak reported, because we don't clean up any other allocated memory, either, and I have no idea why the leak sanitizer treats this buffer specially. In any case, we can work around the leak by shuffling things around a bit. Instead of calling `gently_parse_list_objects_filter()` and dying after we have modified the filter spec, we simply do so beforehand. Like this we don't allocate the buffer in the error case, which makes the reported leak go away. It's not pretty, but it manages to make t6112 leak free. Signed-off-by: Patrick Steinhardt --- list-objects-filter-options.c | 17 +++++++---------- t/t6112-rev-list-filters-objects.sh | 1 + 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c index 00611107d20..fa72e81e4ad 100644 --- a/list-objects-filter-options.c +++ b/list-objects-filter-options.c @@ -252,16 +252,14 @@ void parse_list_objects_filter( const char *arg) { struct strbuf errbuf = STRBUF_INIT; - int parse_error; if (!filter_options->filter_spec.buf) BUG("filter_options not properly initialized"); if (!filter_options->choice) { + if (gently_parse_list_objects_filter(filter_options, arg, &errbuf)) + die("%s", errbuf.buf); strbuf_addstr(&filter_options->filter_spec, arg); - - parse_error = gently_parse_list_objects_filter( - filter_options, arg, &errbuf); } else { struct list_objects_filter_options *sub; @@ -271,18 +269,17 @@ void parse_list_objects_filter( */ transform_to_combine_type(filter_options); - strbuf_addch(&filter_options->filter_spec, '+'); - filter_spec_append_urlencode(filter_options, arg); ALLOC_GROW_BY(filter_options->sub, filter_options->sub_nr, 1, filter_options->sub_alloc); sub = &filter_options->sub[filter_options->sub_nr - 1]; list_objects_filter_init(sub); - parse_error = gently_parse_list_objects_filter(sub, arg, - &errbuf); + if (gently_parse_list_objects_filter(sub, arg, &errbuf)) + die("%s", errbuf.buf); + + strbuf_addch(&filter_options->filter_spec, '+'); + filter_spec_append_urlencode(filter_options, arg); } - if (parse_error) - die("%s", errbuf.buf); } int opt_parse_list_objects_filter(const struct option *opt, diff --git a/t/t6112-rev-list-filters-objects.sh b/t/t6112-rev-list-filters-objects.sh index 0387f35a326..71e38491fa8 100755 --- a/t/t6112-rev-list-filters-objects.sh +++ b/t/t6112-rev-list-filters-objects.sh @@ -5,6 +5,7 @@ test_description='git rev-list using object filtering' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # Test the blob:none filter.