On Fri, Feb 15, 2019 at 07:17:45AM -0800, Johannes Schindelin via GitGitGadget wrote: > From: Johannes Schindelin <johannes.schindelin@xxxxxx> > > Running up to v2.21.0, we fixed two bugs that were made prominent by the > Windows-specific change to retain copies of only the 30 latest getenv() > calls' returned strings, invalidating any copies of previous getenv() > calls' return values. > > While this really shines a light onto bugs of the form where we hold > onto getenv()'s return values without copying them, it is also a real > problem for users. > > And even if Jeff King's patches merged via 773e408881 (Merge branch > 'jk/save-getenv-result', 2019-01-29) provide further work on that front, > we are far from done. Just one example: on Windows, we unset environment > variables when spawning new processes, which potentially invalidates > strings that were previously obtained via getenv(), and therefore we > have to duplicate environment values that are somehow involved in > spawning new processes (e.g. GIT_MAN_VIEWER in show_man_page()). Belated review, as this is already in master, but: yes, I absolutely support this patch, even on top of my patches. Those were just the cases I found by poking around for a few minutes, and I'm sure there are many more. -Peff