From: Ondrej Zajicek (work) Date: Tue, 19 Oct 2021 23:51:28 +0000 (+0200) Subject: Conf: Fix crash during shutdown X-Git-Tag: v2.0.9~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9f24fef5e91fb4df301242ede91ee7ac1b46b8a8;p=thirdparty%2Fbird.git 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. --- diff --git a/conf/conf.c b/conf/conf.c index 58abcde13..a2b016672 100644 --- a/conf/conf.c +++ b/conf/conf.c @@ -520,6 +520,9 @@ order_shutdown(int gr) memcpy(c, config, sizeof(struct config)); init_list(&c->protos); 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->gr_down = gr;