From: Junio C Hamano Date: Sun, 04 Dec 2005 22:31:31 GMT Subject: Re: [PATCH] Add compat/setenv.c, use in git.c. Message-ID: <7vr78sebp8.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <43935A9E.2060602@zytor.com> "H. Peter Anvin" writes: > Jason Riedy wrote: >> + >> +int gitsetenv(const char *name, const char *value, int replace) >> +{ >> +... >> + envstr = malloc((namelen + valuelen + 2) * sizeof(char)); >> +... >> + out = putenv(envstr); >> + >> + free(envstr); >> + return out; >> +} > > Wouldn't this be a good case for using alloca()? Oops. Isn't the patch itself wrong, so is using alloca()? putenv(3) says int putenv(char *string); The string pointed to by string becomes part of the environment, so altering the string changes the environment. which tell sme that whatever we pass to putenv() we should *not* free.