Commit Graph

18 Commits

Author SHA1 Message Date
Todd C. Miller
0f60107a1c No need for dump_badenv() now that dump_defaults() knows how to dump lists. 2002-05-05 19:58:29 +00:00
Todd C. Miller
3f7d801880 Don't try to pre-compute the size of the new envp, just allocate
space up front and realloc as needed.  Changes to the new env pointer
must all be made through insert_env() which now keeps track of
spaced used and allocates as needed.
2002-05-02 19:40:25 +00:00
Todd C. Miller
a576207620 Use easprintf instead of emalloc + sprintf for some things. 2002-04-18 15:38:52 +00:00
Todd C. Miller
ea24bef19c The SHELL environment variable was preserved from the user's
environment instead of being reset based on the passwd database
when the "env_reset" option was used.  Now it is reset as it should be.
2002-01-15 23:43:59 +00:00
Todd C. Miller
1b6d4ad876 Add 'continue' statements to optimize the switch statement. From Solar. 2002-01-15 01:45:40 +00:00
Todd C. Miller
705c4c7515 Fix off by one error in number of bytes allocated via malloc (does not
affected any released version of sudo).
2001-12-31 05:53:23 +00:00
Todd C. Miller
087f5a7d56 Fix setting of $USER and $LOGNAME in the non-reset_env case.
Also allow HOME, SHELL, LOGNAME, and USER to be specified in keep_env
2001-12-18 17:42:37 +00:00
Todd C. Miller
46dd419cd9 o Reorder some headers and use STDC_HEADERS define properly
o Update copyright year
2001-12-14 19:52:47 +00:00
Todd C. Miller
2e677e1023 Remove "secure_path" Defaults option since it cannot work with the
existing parser.
2001-12-14 06:40:03 +00:00
Todd C. Miller
2cbd965d63 o Remove assumption that PATH and TERM are not listed in env_keep
o If no PATH is in the environment use a default value
o If TERM is not set in the non-reset case also give it a default
  value.
2001-12-14 06:24:26 +00:00
Todd C. Miller
199a17436d o Convert environment handling to use lists instead of strings.
This greatly simplifies routines that need to do "foreach" type
   operations.
 o Add new init_envtables() function to set env_check and env_delete
   defaults based on initial_badenv_table and initial_checkenv_table
   (formerly sudo_badenv_table).
2001-12-11 23:02:51 +00:00
Todd C. Miller
63ae9ec2ad Dump default bad env table when 'sudo -V' is run by root. 2001-11-12 18:08:30 +00:00
Todd C. Miller
65302649f5 Add support for '*' in env_keep when not resetting the environment
(ie: the normal case).
2001-11-12 04:51:57 +00:00
Todd C. Miller
ab020c056b Add env_delete variable that lets the user replace/add to the bad_env_table.
Allow '*' wildcard in env_keep entries.
2001-11-12 04:47:22 +00:00
Todd C. Miller
aeb8cefc42 glibc uses the LANGUAGE env var so clear that too; Solar Designer 2001-01-07 18:57:23 +00:00
Todd C. Miller
d956d77528 Move defaults info into its own files from which we generate
.h and .c files.  This makes adding or rearranging variables
much simpler.
2000-12-31 01:38:37 +00:00
Todd C. Miller
1875e47474 Make env_keep override badenv_table as documented
Fix traversal of badenv_table (broken in last commit)
2000-12-30 21:22:08 +00:00
Todd C. Miller
998631b73a New Defaults options:
o stay_setuid - sudo will remain setuid if system has saved uids or setreuid(2)
 o env_reset - reset the environment to a sane default
 o env_keep - preserve environment variables that would otherwise be cleared

No longer use getenv/putenv/setenv functions--do environment munging by hand.
Potentially dangerous environment variables can be cleared only if they
contain '/' pr '%' characters to protect buggy programs.
Moved environment routines into env.c (new file)
2000-12-30 03:29:47 +00:00