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

Reply via email to