(read_alias_file): In case of failure, close the file descriptor and sort
authordrepper <drepper>
Sat, 20 Aug 2005 01:16:17 +0000 (01:16 +0000)
committerdrepper <drepper>
Sat, 20 Aug 2005 01:16:17 +0000 (01:16 +0000)
the array before returning.

intl/localealias.c

index 32d05ff..735107a 100644 (file)
@@ -1,5 +1,5 @@
 /* Handle aliases for locale names.
-   Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1995-2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -295,7 +295,7 @@ read_alias_file (fname, fname_len)
 
              if (nmap >= maxmap)
                if (__builtin_expect (extend_alias_table (), 0))
-                 return added;
+                 goto out;
 
              alias_len = strlen (alias) + 1;
              value_len = strlen (value) + 1;
@@ -308,7 +308,7 @@ read_alias_file (fname, fname_len)
                                        ? alias_len + value_len : 1024));
                  char *new_pool = (char *) realloc (string_space, new_size);
                  if (new_pool == NULL)
-                   return added;
+                   goto out;
 
                  if (__builtin_expect (string_space != new_pool, 0))
                    {
@@ -349,6 +349,7 @@ read_alias_file (fname, fname_len)
        while (strchr (buf, '\n') == NULL);
     }
 
+out:
   /* Should we test for ferror()?  I think we have to silently ignore
      errors.  --drepper  */
   fclose (fp);