ok?

(benno_check_rdomain.diff)

diff --git usr.sbin/bgpd/config.c usr.sbin/bgpd/config.c
index 2a2e5dfa314..4f8134e6b68 100644
--- usr.sbin/bgpd/config.c
+++ usr.sbin/bgpd/config.c
@@ -46,6 +46,7 @@ struct bgpd_config *
 new_config(void)
 {
        struct bgpd_config      *conf;
+       u_int                    rdomid;
 
        if ((conf = calloc(1, sizeof(struct bgpd_config))) == NULL)
                fatal(NULL);
@@ -54,6 +55,10 @@ new_config(void)
        conf->bgpid = get_bgpid();
        conf->fib_priority = RTP_BGP;
        conf->default_tableid = getrtable();
+       ktable_exists(conf->default_tableid, &rdomid);
+       if (rdomid != conf->default_tableid)
+               fatalx("current routing table %u is not a routing domain",
+                   conf->default_tableid);
 
        if (asprintf(&conf->csock, "%s.%d", SOCKET_NAME,
            conf->default_tableid) == -1)

Reply via email to