]> git.puffer.fish Git - matthieu/frr.git/commit
isisd: fix crash on "no router isis" (BZ#536)
authorFritz Reichmann <fritz@reichmann.nl>
Wed, 14 Sep 2011 15:31:51 +0000 (19:31 +0400)
committerDenis Ovsienko <infrastation@yandex.ru>
Tue, 27 Sep 2011 16:48:43 +0000 (20:48 +0400)
commit5574999e598eee290c7e43a2b3a7aafd27be0ee0
tree0d3b6cdf55031385cec680045edcd1315c6e8812
parentb69442d456fa6a00716c5a0684395b04f5794cd6
isisd: fix crash on "no router isis" (BZ#536)

The crash is due to threads accessing data that gets destroyed
during the removal of the configuration.

* isis_circuit.c: Destroy adjacencies to stop adjacency expiry thread.
  Stop PSNP threads.
* isisd.c: Change state of circuit back to INIT and reassign the
  circuit structure to isis->init_circ_list rather than destroying
  the circuit data structure. Stop SPF threads. Stop LSP generation
  threads.
* isisd.h: Add pointers to LSP threads into area structure in order to
  stop them in isisd.c
* isis_lsp.c: Store pointer to LSP thread in area structure.
* isis_pdu.c: Stop PDU generation for a circuit with a removed area.
* isis_pfpacket.c: Stop processing received PDUs for a circuit with a
  removed area.
isisd/isis_circuit.c
isisd/isis_lsp.c
isisd/isis_pdu.c
isisd/isis_pfpacket.c
isisd/isisd.c
isisd/isisd.h