extern int usergr_matches __P((char *, char *));
static int find_alias __P((char *, int));
static int add_alias __P((char *, int));
-static int more_aliases __P((size_t));
+static int more_aliases __P((void));
static void append __P((char *, char **, size_t *, size_t *, int));
static void expand_ca_list __P((void));
static void expand_match_list __P((void));
(void) sprintf(s, "Alias `%s' already defined", alias);
yyerror(s);
} else {
- if (naliases == nslots && !more_aliases(nslots)) {
+ if (naliases >= nslots && !more_aliases()) {
(void) sprintf(s, "Out of memory defining alias `%s'", alias);
yyerror(s);
}
* This function allocates more space for the aliases list.
*/
-static int more_aliases(nslots)
- size_t nslots;
+static int more_aliases()
{
- aliasinfo *aip;
-
- if (nslots == 0)
- aip = (aliasinfo *) malloc(MOREALIASES * sizeof(*aip));
+ nslots += MOREALIASES;
+ if (nslots == MOREALIASES)
+ aliases = (aliasinfo *) malloc(nslots * sizeof(aliasinfo));
else
- aip = (aliasinfo *) realloc(aliases,
- (nslots + MOREALIASES) * sizeof(*aip));
-
- if (aip != NULL) {
- aliases = aip;
- nslots += MOREALIASES;
- }
+ aliases = (aliasinfo *) realloc(aliases, nslots * sizeof(aliasinfo));
- return(aip != NULL);
+ return(aliases != NULL);
}