Conf: Fix crash during shutdown

BIRD implements shutdown by reconfiguring to fake empty configuration.
Such fake config structure is created from the last running config and
shares some data, including symbol table. This allows access to (removed)
routing tables and causes crash when 'show route' command is used during
shutdown.

Clean up symbol table, table list and links to default tables, so removed
routing tables cannot be accessed during shutdown.
This commit is contained in:
Ondrej Zajicek (work) 2021-10-20 01:51:28 +02:00
parent f761be6b30
commit 9f24fef5e9

View file

@ -520,6 +520,9 @@ order_shutdown(int gr)
memcpy(c, config, sizeof(struct config)); memcpy(c, config, sizeof(struct config));
init_list(&c->protos); init_list(&c->protos);
init_list(&c->tables); init_list(&c->tables);
init_list(&c->symbols);
memset(c->def_tables, 0, sizeof(c->def_tables));
HASH_INIT(c->sym_hash, c->pool, 4);
c->shutdown = 1; c->shutdown = 1;
c->gr_down = gr; c->gr_down = gr;