(extend_alias_table): Return an error indicator.
authordrepper <drepper>
Thu, 4 May 2000 02:05:35 +0000 (02:05 +0000)
committerdrepper <drepper>
Thu, 4 May 2000 02:05:35 +0000 (02:05 +0000)
(read_alias_file): Bail out if extend_alias_table fails.

intl/localealias.c

index d851bfa..57c693d 100644 (file)
@@ -162,7 +162,7 @@ static size_t maxmap;
 /* Prototypes for local functions.  */
 static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
      internal_function;
-static void extend_alias_table PARAMS ((void));
+static int extend_alias_table PARAMS ((void));
 static int alias_compare PARAMS ((const struct alias_map *map1,
                                  const struct alias_map *map2));
 
@@ -330,7 +330,11 @@ read_alias_file (fname, fname_len)
                *cp++ = '\0';
 
              if (nmap >= maxmap)
-               extend_alias_table ();
+               if (__builtin_expect (extend_alias_table (), 0))
+                 {
+                   FREE_BLOCKS (block_list);
+                   return added;
+                 }
 
              alias_len = strlen (alias) + 1;
              value_len = strlen (value) + 1;
@@ -378,7 +382,7 @@ read_alias_file (fname, fname_len)
 }
 
 
-static void
+static int
 extend_alias_table ()
 {
   size_t new_size;
@@ -389,10 +393,11 @@ extend_alias_table ()
                                                * sizeof (struct alias_map)));
   if (new_map == NULL)
     /* Simply don't extend: we don't have any more core.  */
-    return;
+    return -1;
 
   map = new_map;
   maxmap = new_size;
+  return 0;
 }