Re: [PATCH v4] alloc: fix dangling pointer in alloc_state cleanup
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 4, 2025, 07:47 UTC
- Message-ID
- <xmqqh5xibqvu.fsf@gitster.g>
- In-Reply-To
- <pull.2040.v4.git.git.1756941427825.gitgitgadget@gmail.com>
"ノウラ | Flare via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 5 quoted lines
> +void alloc_state_free_and_null(struct alloc_state **s_)
> {
> + struct alloc_state *s;
> +
> + if (!s_ || !*s_) return;I still do not see the point of this check. If the caller passes a NULL pointer, when they are expected to pass the address of a pointer variable so that the struct the pointer points at is cleared and freed, and the pointer variable is NULLed, it is called a programmer error and they deserve a segfault. Why would it be better to sweep such an error under the rug by returning without anything? It would delay discovery of such a bug, but for what gain?