Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Apr 2007 22:48:54 +0400
From:      Andrey Chernov <ache@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/lib/libc/stdlib getenv.3 getenv.c putenv.c setenv.c
Message-ID:  <20070430184854.GA87050@nagual.pp.ru>
In-Reply-To: <20070430183624.GA73050@tirith.brixandersen.dk>
References:  <200704301656.l3UGuIqf048148@repoman.freebsd.org> <20070430183624.GA73050@tirith.brixandersen.dk>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Mon, Apr 30, 2007 at 08:36:24PM +0200, Henrik Brix Andersen wrote:
> Todays changes to *env() appears to have broken stuff (my -CURRENT box
> fails to build many ports after these changes, due to missing
> environment variables in the build environment).
> 
> Here is a simple test-case:
> 
> $ env -vi foo=bar env
> #env clearing environ
> #env setenv:    foo=bar
> #env executing: env
> #env    arg[0]= 'env'
> 
> Notice that the second instance of env(1) doesn't see the $foo
> environment variable.
> 
> This is the output of the same test on my RELENG_6 box:
> 
> $ env -vi foo=bar env
> #env clearing environ
> #env setenv:    foo=bar
> #env executing: env
> #env    arg[0]= 'env'
> foo=bar

Thanx for the report, but please be patient a bit, work in the progress
and fix already planned soon.
To the matter: env incorrectly calls setenv("name=...", ...) which is
POSIX violation:

"The setenv( ) function shall fail if:
[EINVAL] The name argument is a null pointer, points to an empty string, 
or points to a string containing an '=' character."

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

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.3 (FreeBSD)

iD8DBQFGNjoWVg5YK5ZEdN0RAgCgAJ9Ea+GVihetvk9E1AI+2VSoq0IOZgCgs2+W
IEcVTmj9KW7Rh4FeUoGtKfI=
=NGvN
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070430184854.GA87050>