From c1fd4ec15e0c7afdbf59a0bfb1253de4977ed9b5 Mon Sep 17 00:00:00 2001 From: scf Date: Mon, 7 Dec 2009 00:22:10 +0000 Subject: Revert behavior change to setenv(), unsetenv() and putenv() until a more thorough security review has been completed. --- lib/libc/stdlib/getenv.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'lib/libc') diff --git a/lib/libc/stdlib/getenv.c b/lib/libc/stdlib/getenv.c index 4617f45..b7826d7 100644 --- a/lib/libc/stdlib/getenv.c +++ b/lib/libc/stdlib/getenv.c @@ -361,7 +361,8 @@ __build_env(void) } else { __env_warnx(CorruptEnvValueMsg, envVars[envNdx].name, strlen(envVars[envNdx].name)); - continue; + errno = EFAULT; + goto Failure; } /* @@ -376,7 +377,8 @@ __build_env(void) false) == NULL) { __env_warnx(CorruptEnvFindMsg, envVars[envNdx].name, nameLen); - continue; + errno = EFAULT; + goto Failure; } envVars[activeNdx].active = true; } @@ -558,7 +560,8 @@ __merge_environ(void) if ((equals = strchr(*env, '=')) == NULL) { __env_warnx(CorruptEnvValueMsg, *env, strlen(*env)); - continue; + errno = EFAULT; + return (-1); } if (__setenv(*env, equals - *env, equals + 1, 1) == -1) -- cgit v1.1