parameterize maximum recursion depth (compile time only)
authorEric Allman <eric@ucbvax.Berkeley.EDU>
Wed, 15 Dec 1993 06:05:17 +0000 (22:05 -0800)
committerEric Allman <eric@ucbvax.Berkeley.EDU>
Wed, 15 Dec 1993 06:05:17 +0000 (22:05 -0800)
SCCS-vsn: usr.sbin/sendmail/src/parseaddr.c 8.27

usr/src/usr.sbin/sendmail/src/parseaddr.c

index 4e937da..e28031e 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)parseaddr.c        8.26 (Berkeley) %G%";
+static char sccsid[] = "@(#)parseaddr.c        8.27 (Berkeley) %G%";
 #endif /* not lint */
 
 #include "sendmail.h"
 #endif /* not lint */
 
 #include "sendmail.h"
@@ -702,8 +702,12 @@ struct match
 # define MAXMATCH      9       /* max params per rewrite */
 # define MAX_CONTROL ' '
 
 # define MAXMATCH      9       /* max params per rewrite */
 # define MAX_CONTROL ' '
 
+# ifndef MAXRULERECURSION
+#  define MAXRULERECURSION     50      /* max recursion depth */
+# endif
 static char control_opts[MAX_CONTROL];
 
 static char control_opts[MAX_CONTROL];
 
+
 int
 static char control_init_data[] = { 
        MATCHZANY,      OP_VARLEN,
 int
 static char control_init_data[] = { 
        MATCHZANY,      OP_VARLEN,
@@ -763,7 +767,7 @@ _rewrite(pvp, ruleset)
                syserr("554 rewrite: illegal ruleset number %d", ruleset);
                return EX_CONFIG;
        }
                syserr("554 rewrite: illegal ruleset number %d", ruleset);
                return EX_CONFIG;
        }
-       if (reclevel++ > 50)
+       if (reclevel++ > MAXRULERECURSION)
        {
                syserr("rewrite: infinite recursion, ruleset %d", ruleset);
                return EX_CONFIG;
        {
                syserr("rewrite: infinite recursion, ruleset %d", ruleset);
                return EX_CONFIG;