From: Phillip Wood Date: Tue, 25 Oct 2022 10:08:41 GMT Subject: Re: [PATCH v4 3/8] rebase --merge: fix reflog when continuing Message-ID: <86699708-d631-fb49-482c-af27204a3570@dunelm.org.uk> In-Reply-To: Hi Junio On 21/10/2022 18:37, Junio C Hamano wrote: > "Phillip Wood via GitGitGadget" writes: > >> ... This >> introduces a memory leak similar to the one leaking GIT_REFLOG_ACTION >> in pick_commits(). > > Is it just the matter of freeing previous_reflog_action after you > call setenv(), or does it take much more involved changes? We should be freeing previous_reflog_action - I had misremembered a previous discussion about setenv() but the manual page makes it quite clear that it copies the strings passed to it. However we call setenv() each time we pick a commit and that leaks the previous value. The solution is to avoid calling setenv() at all and instead use the env member of struct child_process when we run "git commit". >> Both of these will be fixed in a future series that >> stops the sequencer calling setenv(). > > If it gets fixed in a future step in the same series, that is a > different matter, but if it is easy enough not to deliberately > introduce a new leak, we'd prefer to do so. It's a couple of patches to fix which are more or less finished, I'm planning to send them once this series is in next. Best Wishes Phillip