Commit 9f24fef5 authored by Ondrej Zajicek (work)'s avatar Ondrej Zajicek (work)
Browse files

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.
parent f761be6b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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;