Environment handling broken in /bin/sh with changes to t,set,put}env()

Andrey Chernov ache at nagual.pp.ru
Fri Jul 13 23:09:09 UTC 2007


On Sat, Jul 14, 2007 at 03:02:41AM +0400, Andrey Chernov wrote:
> > > Sean
> > >   1. http://www.farley.org/freebsd/tmp/setenv/clearenv/patch
> > 
> > The wrapper version finally looks OK for me.
> 
> BTW, since strlen(value) is common part, you may decrease one argument to 
> __setenv() call just passing value and doing strlen(value) inside it like 
> before, i.e.
> valueLen = strlen(value);


One thing more - this is a user name space pollution because ends up into
common block .global:
+const char CorruptEnvFindMsg[] = "environment corrupt; unable to find 
%.*s";
+const char CorruptEnvValueMsg[] = "environment corrupt; missing value for 
%s";
Better replace with 
static const char ...

-- 
http://ache.pp.ru/


More information about the freebsd-current mailing list