Re: [PATCH] repository: cache->squash_msg is freed twice
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Dec 18, 2025, 18:18 UTC
- Message-ID
- <CAPig+cRsKGERBk2pVotrKhhy5FCmmrQODTJEgkO8GuTY2SLbiA@mail.gmail.com>
- In-Reply-To
- <pull.2132.git.git.1766071566022.gitgitgadget@gmail.com>
On Thu, Dec 18, 2025 at 10:26 AM AZero13 via GitGitGadget <gitgitgadget@gmail.com> wrote:
Show 13 quoted lines
> Thankfully, it is set to NULL, so no security consequences.
> However, this is still a mistake that must be rectified.
>
> Signed-off-by: Greg Funni <gfunni234@gmail.com>
> ---
> diff --git a/repository.c b/repository.c
> @@ -349,7 +349,6 @@ out:
> static void repo_clear_path_cache(struct repo_path_cache *cache)
> {
> - FREE_AND_NULL(cache->squash_msg);
> FREE_AND_NULL(cache->squash_msg);
> FREE_AND_NULL(cache->merge_msg);
> FREE_AND_NULL(cache->merge_rr);This mistake has been present since Ævar added this function in 759f340738 (repository.c: free the "path cache" in repo_clear(), 2022-03-04), so it isn't the result of someone else coming along and adding a new field to the structure which needs freeing but then botching the call to FREE_AND_NULL(). Moreover, this function does free all the freeable members of repo_path_cache, hence, nothing is being leaked, so it must have just been a silly copy/paste mistake in the first place. Hence, this change makes sense.