Re: [PATCH] Add compat/setenv.c, use in git.c.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Dec 4, 2005, 22:31 UTC
- Message-ID
- <7vr78sebp8.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <43935A9E.2060602@zytor.com>
"H. Peter Anvin" <hpa@zytor.com> writes:
Show 14 quoted lines
> 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.