isis_pdu.c : isisd crashes if router's own p2p hello packets get processed thereby creating an adjacecncy with itself. Asserts at isis_find_vertex. So discard own p2p IIH PDU and avoid creating adjacency with self. This would also fix duplicate systemID on an interface. These checks already exists for IS-IS LAN Level 1/2 Hello PDU in process_lan_hello, but not for point-to-point IIH PDUs.
Signed-off-by: Amritha Nambiar <[email protected]> --- isisd/isis_pdu.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c index 02b50bf..7c04f44 100644 --- a/isisd/isis_pdu.c +++ b/isisd/isis_pdu.c @@ -562,6 +562,17 @@ process_p2p_hello (struct isis_circuit *circuit) } /* + * it's own p2p IIH PDU - discard + */ + if (!memcmp (hdr->source_id, isis->sysid, ISIS_SYS_ID_LEN)) + { + zlog_warn ("ISIS-Adj (%s): it's own IIH PDU - discarded", + circuit->area->area_tag); + free_tlvs (&tlvs); + return ISIS_WARNING; + } + + /* * My interpertation of the ISO, if no adj exists we will create one for * the circuit */ _______________________________________________ Quagga-dev mailing list [email protected] https://lists.quagga.net/mailman/listinfo/quagga-dev
