Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/lib/libc/stdlib



On Thu, Sep 30, 2010 at 12:41:34PM +0000, Matthias Scheler wrote:
> Module Name:  src
> Committed By: tron
> Date:         Thu Sep 30 12:41:33 UTC 2010
> 
> Modified Files:
>       src/lib/libc/stdlib: setenv.c unsetenv.c
> 
> Log Message:
> Be slightly more careful about freeing memory allocated for environment
> variables: only free memory if the current value points to the same
> memory area as the allocated block. This will prevent crashes if an
> application changes the order of the environment array.
> 
> Unfortunately this is still not enough to stop zsh 4.2.* from crashing.
> zsh 4.3.* works fine before and after this change.

Thanks Matthias,

One possibility could be to not free memory at all in setenv, but only
with unsetenv.

IMHO, it's a programmer error to call setenv more than once on the
same variable without a corresponding unsetenv in between (just like
malloc()/free() behaviour). Otherwise, if i understand things
correctly, it's more putenv that shoud work that way.

-- 
Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.


Home | Main Index | Thread Index | Old Index