From: Ulrich Drepper Date: Fri, 15 May 1998 15:28:15 +0000 (+0000) Subject: Update. X-Git-Tag: cvs/libc-ud-980518~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cb37d8429a6d2da1e76e4e9ff22c51939ef56a6d;p=thirdparty%2Fglibc.git Update. 1998-05-15 Ulrich Drepper * sysdeps/generic/setenv.c (setenv): Remove optimization for overwriting existing values if it fits. --- diff --git a/ChangeLog b/ChangeLog index 75a2941ece6..f8afb393a3d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +1998-05-15 Ulrich Drepper + + * sysdeps/generic/setenv.c (setenv): Remove optimization for + overwriting existing values if it fits. + 1998-05-15 14:36 Ulrich Drepper * posix/wordexp-test.c: Avoid duplicate messages. diff --git a/sysdeps/generic/setenv.c b/sysdeps/generic/setenv.c index baae4c59b28..22ea7e551fa 100644 --- a/sysdeps/generic/setenv.c +++ b/sysdeps/generic/setenv.c @@ -187,50 +187,44 @@ setenv (name, value, replace) else if (replace) { size_t len = strlen (*ep); - if (len + 1 < namelen + 1 + vallen) - { - char *new_value; - char *np; + char *new_value; + char *np; - /* The existing string is too short; malloc a new one. */ + /* The existing string is too short; malloc a new one. */ #ifdef USE_TSEARCH - new_value = alloca (namelen + 1 + vallen); + new_value = alloca (namelen + 1 + vallen); # ifdef _LIBC - __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), - value, vallen); + __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), + value, vallen); # else - memcpy (new_value, name, namelen); - new_value[namelen] = '='; - memcpy (&new_value[namelen + 1], value, vallen); + memcpy (new_value, name, namelen); + new_value[namelen] = '='; + memcpy (&new_value[namelen + 1], value, vallen); # endif - np = KNOWN_VALUE (new_value); - if (np == NULL) + np = KNOWN_VALUE (new_value); + if (np == NULL) #endif + { + np = malloc (namelen + 1 + vallen); + if (np == NULL) { - np = malloc (namelen + 1 + vallen); - if (np == NULL) - { - UNLOCK; - return -1; - } + UNLOCK; + return -1; + } #ifdef USE_TSEARCH - memcpy (np, new_value, namelen + 1 + vallen); + memcpy (np, new_value, namelen + 1 + vallen); #else - memcpy (np, name, namelen); - np[namelen] = '='; - memcpy (&np[namelen + 1], value, vallen); + memcpy (np, name, namelen); + np[namelen] = '='; + memcpy (&np[namelen + 1], value, vallen); #endif - } - - /* Keep the old value around. */ - STORE_VALUE (*ep); - *ep = np; } - else - /* Overwrite the value part of the old value. */ - memcpy (&(*ep)[namelen + 1], value, vallen); + + /* Keep the old value around. */ + STORE_VALUE (*ep); + *ep = np; } UNLOCK;