Re: [PATCH] Allocate msg only after fatal checks to avoid leaks
- From
lidongyan <502024330056@smail.nju.edu.cn>
- Date
- Jun 14, 2025, 15:50 UTC
- Message-ID
- <089E9F89-5B21-4035-B500-8255622DA92A@smail.nju.edu.cn>
- In-Reply-To
- <xmqqcyb672mc.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 19 quoted lines
> > lidongyan <502024330056@smail.nju.edu.cn> writes: > >> Alex via GitGitGadget <gitgitgadget@gmail.com> writes: >>> >>> From: jinyaoguo <guo846@purdue.edu> >>> >>> In parse_reuse_arg, we previously called xmalloc and strbuf_init >>> before resolving the ref and reading the object, leading to a >>> leaked msg on die() paths. This change moves the allocation of >> >> A memory leak on the die() path shouldn't be considered a real leak, >> right? Since the OS will clean up all memory once the process >> terminates, explicitly freeing msg isn't necessary in this case. > > It may not matter in practice, but I think the leak checking > machinery like sanitizers would still complain, so I view efforts on > plugging such leaks in the error code paths more about decluttering > the leak checker output to help us spot the real leaks.
Makes sense. However, inserting a free-like statement in die() would be messier than using goto, since each die() has a unique message and we need to free stuff at each die().