Re: [PATCH v6] alloc: fix dangling pointer in alloc_state cleanup
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 5, 2025, 19:37 UTC
- Message-ID
- <xmqqh5xg3d3a.fsf@gitster.g>
- In-Reply-To
- <pull.2040.v6.git.git.1757098308277.gitgitgadget@gmail.com>
"ノウラ | Flare via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 32 quoted lines
> From: =?UTF-8?q?=E3=83=8E=E3=82=A6=E3=83=A9=20=7C=20Flare?= > <nouraellm@gmail.com> > > All callers of clear_alloc_state() immediately free what they > cleared, so currently it does not hurt anybody that the > alloc_state is left in an unreusable state, but it is an > error-prone API. Replace it with a new function that clears but > in addition frees the structure, as well as NULLing the pointer > that points at it and adjust existing callers. > > As it is a moral equivalent of FREE_AND_NULL(), except that what it > frees has internal structure that needs to be cleaned, allow the > helper to be called twice in a row, by making a call with a pointer > to a pointer variable that already is NULLed. > > While at it, rename allocate_alloc_state() and name the new > function alloc_state_free_and_null(), to follow more closely the > function naming convention specified in the CodingGuidelines > (namely, functions about S are named with S_ prefix and then > verb). > > Signed-off-by: ノウラ | Flare <nouraellm@gmail.com> > Helped-by: Jeff King <peff@peff.net> > Signed-off-by: Junio C Hamano <gitster@pobox.com> > --- > alloc: fix dangling pointer in alloc_state cleanup > > cc: Torsten Bögershausen tboegi@web.de cc: Jeff King peff@peff.net > > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2040%2Fnouraellm%2Ffix-dangling-pointer-v6 > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2040/nouraellm/fix-dangling-pointer-v6 > Pull-Request: https://github.com/git/git/pull/2040
Nicely done. I see no more need for further changes.
> + if (!s) > + return;
This must be indented with two tabs, i.e.
if (!s) return;
but the copy I have since yesterday already is formatted that way, so no need to resend this patch.
Thanks. Let's mark the topic for 'next'.