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)