Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 21 Aug 2000 20:58:00 +0000 (20:58 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 21 Aug 2000 20:58:00 +0000 (20:58 +0000)
* sysdeps/i370/Implies: Removed.
* sysdeps/mvs/Implies: Removed.

* catgets/catgets.c (catopen): Filter out env_var values with / if
necessary.

* locale/findlocale.c (_nl_find_locale): Move test for unusable
locale name after all getenvs.

ChangeLog
catgets/catgets.c
locale/findlocale.c
sysdeps/i370/Implies [deleted file]
sysdeps/mvs/Implies [deleted file]

index 9db8282..3d693fd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2000-08-21  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/i370/Implies: Removed.
+       * sysdeps/mvs/Implies: Removed.
+
+       * catgets/catgets.c (catopen): Filter out env_var values with / if
+       necessary.
+
+       * locale/findlocale.c (_nl_find_locale): Move test for unusable
+       locale name after all getenvs.
+
        * configure.in: Allow sed versions like 3.02.8.
        Patch by Rodrigo Barbosa <rodrigob@conectiva.com.br>.
 
index 86ff0ff..cad515d 100644 (file)
@@ -50,7 +50,8 @@ catopen (const char *cat_name, int flag)
        /* Use the LANG environment variable.  */
        env_var = getenv ("LANG");
 
-      if (env_var == NULL)
+      if (env_var == NULL || *env_var == '\0'
+         || (__libc_enable_secure && strchr (env_var, '/') != NULL))
        env_var = "C";
 
       env_var_len = strlen (env_var) + 1;
index 7c77dd8..275f7fc 100644 (file)
@@ -54,11 +54,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
   const char *revision;
   struct loaded_l10nfile *locale_file;
 
-  if ((*name)[0] == '\0'
-      /* In SUID binaries we must not allow people to access files
-        outside the dedicated locale directories.  */
-      || (__builtin_expect (__libc_enable_secure, 0)
-         && memchr (*name, '/', _nl_find_language (*name) - *name) != NULL))
+  if ((*name)[0] == '\0')
     {
       /* The user decides which locale to use by setting environment
         variables.  */
@@ -67,10 +63,13 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
        *name = getenv (_nl_category_names[category]);
       if (*name == NULL || (*name)[0] == '\0')
        *name = getenv ("LANG");
-      if (*name == NULL || (*name)[0] == '\0')
-       *name = (char *) _nl_C_name;
     }
 
+  if (*name == NULL || (*name)[0] == '\0'
+      || (__builtin_expect (__libc_enable_secure, 0)
+         && memchr (*name, '/', _nl_find_language (*name) - *name) != NULL))
+    *name = (char *) _nl_C_name;
+
   if (__builtin_expect (strcmp (*name, _nl_C_name), 1) == 0
       || __builtin_expect (strcmp (*name, _nl_POSIX_name), 1) == 0)
     {
diff --git a/sysdeps/i370/Implies b/sysdeps/i370/Implies
deleted file mode 100644 (file)
index 39a34c5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-wordsize-32
diff --git a/sysdeps/mvs/Implies b/sysdeps/mvs/Implies
deleted file mode 100644 (file)
index b3188f7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-posix