Skip to content

Commit

Permalink
isisd: refuse adjacencies with our own system ID
Browse files Browse the repository at this point in the history
isisd would form an adjacency with another router despite the system IDs
being identical.  This would later cause an assertion failure like this:

  assertion=0x555555596db8 "isis_find_vertex (spftree->paths, id, vtype) == ((void *)0)",
  file=0x555555596c60 "isis_spf.c", line=515, function=0x555555597900 "isis_spf_add2tent") at log.c:619

which is caused by trying to add a path expected to not exist, but
suddenly colliding due to the duplicate system ID.

* isis_pdu.c: check for system ID collision on receiving Hello
  • Loading branch information
eqvinox committed Oct 6, 2012
1 parent de065ae commit db76a4a
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions isisd/isis_pdu.c
Original file line number Diff line number Diff line change
Expand Up @@ -989,6 +989,13 @@ process_lan_hello (int level, struct isis_circuit *circuit, u_char * ssnpa)
}
}

if (!memcmp (hdr.source_id, isis->sysid, ISIS_SYS_ID_LEN))
{
zlog_warn ("ISIS-Adj (%s): duplicate system ID on interface %s",
circuit->area->area_tag, circuit->interface->name);
return ISIS_WARNING;
}

/*
* Accept the level 1 adjacency only if a match between local and
* remote area addresses is found
Expand Down

0 comments on commit db76a4a

Please sign in to comment.