[BZ #384]
authorUlrich Drepper <drepper@redhat.com>
Sun, 26 Sep 2004 12:12:28 +0000 (12:12 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 26 Sep 2004 12:12:28 +0000 (12:12 +0000)
Update.
* elf/dl-support.c (_dl_non_dynamic_init): Fix cleaning of
environment.  [BZ #384]

ChangeLog
elf/dl-support.c

index 0f80b6c..5a923c9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2004-09-26  Ulrich Drepper  <drepper@redhat.com>
 
+       * elf/dl-support.c (_dl_non_dynamic_init): Fix cleaning of
+       environment.  [BZ #384]
+
        * sunrpc/clnt_udp.c (is_network_up): Use getifaddrs instead of ioctl.
        * sunrpc/get_myaddr.c (get_myaddress): Likewise.
        * sunrpc/pmap_clnt.c (__get_myaddress): Likewise.
index 2b53770..c5976cd 100644 (file)
@@ -257,22 +257,22 @@ _dl_non_dynamic_init (void)
 
   if (__libc_enable_secure)
     {
-      static const char *unsecure_envvars[] =
-      {
-       UNSECURE_ENVVARS,
+      static const char unsecure_envvars[] =
+       UNSECURE_ENVVARS
 #ifdef EXTRA_UNSECURE_ENVVARS
        EXTRA_UNSECURE_ENVVARS
 #endif
-      };
-      size_t cnt;
+       ;
+      const char *cp = unsecure_envvars;
 
-      for (cnt = 0;
-          cnt < sizeof (unsecure_envvars) / sizeof (unsecure_envvars[0]);
-          ++cnt)
-       unsetenv (unsecure_envvars[cnt]);
+      while (cp < unsecure_envvars + sizeof (unsecure_envvars))
+       {
+         __unsetenv (cp);
+         cp = (const char *) __rawmemchr (cp, '\0') + 1;
+       }
 
       if (__access ("/etc/suid-debug", F_OK) != 0)
-       unsetenv ("MALLOC_CHECK_");
+       __unsetenv ("MALLOC_CHECK_");
     }
 
 #ifdef DL_PLATFORM_INIT