]> git.puffer.fish Git - mirror/frr.git/commit
OSPFD: Solve Issue #1652 1667/head
authorOlivier Dugeon <olivier.dugeon@orange.com>
Tue, 23 Jan 2018 15:15:58 +0000 (16:15 +0100)
committerOlivier Dugeon <olivier.dugeon@orange.com>
Tue, 23 Jan 2018 15:15:58 +0000 (16:15 +0100)
commit139a482cf0fad8056dcd53b554f467079d0b7e68
tree408c15f069384f1ab7124d4b766179273e937bf6
parentb782607f7f2125dd0e5789d5744cc97baf03b0e6
OSPFD: Solve Issue #1652

Issue 1652 was related to OSPF Crash on termination when ospf is
configured to flood self Opaque LSA e.g TE or RI Opaque LSA.

Analysis:
The problem resides in free_opaque_info_per_type() line 576 of
ospf_opaque.c. Once LSA flush, the function removes by calling
listnode_delete() function the opaque_info_per_type data structure.
However, this is also performed at the upper level function
ospf_opaque_type10lsa_term() which call list_delete_and_null() function.
This result into a double free pointer exception.

Solution:
Remove call to listnode_delete() calls in free_opaque_info_per_type()
function as it is done by list_delete_and_null(). Delete lines 592 - 615.
Remove also second call to ospf_opaque_type10lsa_term() in ospfd.c line 848.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
ospfd/ospf_opaque.c
ospfd/ospfd.c