summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2007-02-20 17:23:51 +0100
committerJim Meyering <jim@meyering.net>2007-02-20 17:23:51 +0100
commitd7226387a9fb07ec3de3913f8128a31ba95deeb2 (patch)
tree5d495cae4b86d5bf0be1fb497e12b357ab456014
parentdd99d05b4a24966f22321793bfc45681652eceef (diff)
downloadcoreutils-d7226387a9fb07ec3de3913f8128a31ba95deeb2.tar.xz
* src/env.c (main): When invoked with no arguments (i.e. when printing
the environment), use a local variable to iterate through the global "environ" array, rather than "environ" itself. This is solely to avoid changing the environment for an LD_PRELOAD-substituted "puts" or "exit" function. Tiny patch by Harvey Eneman. See <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9735>. * THANKS: Update.
-rw-r--r--ChangeLog8
-rw-r--r--THANKS1
-rw-r--r--src/env.c7
3 files changed, 13 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 5de232556..9df052e17 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2007-02-20 Jim Meyering <jim@meyering.net>
+ * src/env.c (main): When invoked with no arguments (i.e. when printing
+ the environment), use a local variable to iterate through the global
+ "environ" array, rather than "environ" itself. This is solely to
+ avoid changing the environment for an LD_PRELOAD-substituted "puts"
+ or "exit" function. Tiny patch by Harvey Eneman. See
+ <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/9735>.
+ * THANKS: Update.
+
* bootstrap: Move definitions of temporary directory names and the
new bt_regex "up" to precede all uses, so it's clearer what their
scope is. Also, use [.], rather than \\., since the former works
diff --git a/THANKS b/THANKS
index 25b97edf0..1d7aae341 100644
--- a/THANKS
+++ b/THANKS
@@ -193,6 +193,7 @@ Hans Verkuil hans@wyst.hobby.nl
Harald Dunkel harald.dunkel@t-online.de
Harry Liu rliu@lek.ugcs.caltech.edu
Harti Brandt brandt@fokus.fraunhofer.de
+Harvey Eneman Harvey.Eneman@oracle.com
Helen Faulkner helen_ml_faulkner@yahoo.co.uk
Herbert Xu herbert@gondor.apana.org.au
Holger Berger hberger@ess.nec.de
diff --git a/src/env.c b/src/env.c
index 7283926de..d95ebfd7e 100644
--- a/src/env.c
+++ b/src/env.c
@@ -1,5 +1,5 @@
/* env - run a program in a modified environment
- Copyright (C) 1986, 1991-2005 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1991-2005, 2007 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -189,8 +189,9 @@ main (int argc, char **argv)
/* If no program is specified, print the environment and exit. */
if (argc <= optind)
{
- while (*environ)
- puts (*environ++);
+ char *const *e = environ;
+ while (*e)
+ puts (*e++);
exit (EXIT_SUCCESS);
}