]> granicus.if.org Git - sudo/commitdiff
fixed more_aliases
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 12 Nov 1996 16:59:02 +0000 (16:59 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 12 Nov 1996 16:59:02 +0000 (16:59 +0000)
parse.yacc

index 3b350fa226ef18bf7bb895c4a1796cfe1dfa943a..84464727e70f122a3435881b4cf39509261d7fec 100644 (file)
@@ -134,7 +134,7 @@ extern int  netgr_matches   __P((char *, char *, char *));
 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));
@@ -683,7 +683,7 @@ static int add_alias(alias, type)
        (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);
        }
@@ -731,23 +731,15 @@ static int find_alias(alias, type)
  *  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);
 }