Similar to AS_TRANS (23456) AS 0 should not be allowed.
This adds this restriction for asnumbers which are used on AS, remote-as
and local-as tokens in the config. Inside filters as4numer_any is used
which does not have any kind of restriction.

OK?
-- 
:wq Claudio


? obj
Index: parse.y
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/parse.y,v
retrieving revision 1.357
diff -u -p -r1.357 parse.y
--- parse.y     21 Sep 2018 05:13:35 -0000      1.357
+++ parse.y     21 Sep 2018 05:16:45 -0000
@@ -297,7 +297,7 @@ as4number   : STRING                        {
                                free($1);
                                YYERROR;
                        }
-                       if (uvalh == 0 && uval == AS_TRANS) {
+                       if (uvalh == 0 && (uval == AS_TRANS || uval == 0)) {
                                yyerror("AS %u is reserved and may not be used",
                                    AS_TRANS);
                                YYERROR;
@@ -305,7 +305,7 @@ as4number   : STRING                        {
                        $$ = uval | (uvalh << 16);
                }
                | asnumber {
-                       if ($1 == AS_TRANS) {
+                       if ($1 == AS_TRANS || $1 == 0) {
                                yyerror("AS %u is reserved and may not be used",
                                    AS_TRANS);
                                YYERROR;

Reply via email to