From: Donald Sharp Date: Mon, 3 Apr 2017 01:21:21 +0000 (-0400) Subject: eigrpd: Valgrind complained about not removing entry X-Git-Tag: reindent-master-before~197^2~24 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=703beb67fe0a9032ad06c39f9310291eaa06f7ca;p=mirror%2Ffrr.git eigrpd: Valgrind complained about not removing entry We were not removing the pe from the topology list. Signed-off-by: Donald Sharp --- diff --git a/eigrpd/eigrp_topology.c b/eigrpd/eigrp_topology.c index 5d45e03bd9..32758b0408 100644 --- a/eigrpd/eigrp_topology.c +++ b/eigrpd/eigrp_topology.c @@ -243,6 +243,14 @@ void eigrp_prefix_entry_delete(struct list *topology, struct eigrp_prefix_entry *node) { + struct eigrp *eigrp = eigrp_lookup (); + + /* + * Emergency removal of the node from this list. + * Whatever it is. + */ + listnode_delete(eigrp->topology_changes_internalIPV4, node); + if (listnode_lookup(topology, node) != NULL) { list_delete_all_node(node->entries); @@ -549,20 +557,20 @@ eigrp_topology_neighbor_down(struct eigrp *eigrp, struct eigrp_neighbor * nbr) void eigrp_update_topology_table_prefix(struct list * table, struct eigrp_prefix_entry * prefix) { - struct listnode *node1, *node2; - - struct eigrp_neighbor_entry *entry; - for (ALL_LIST_ELEMENTS(prefix->entries, node1, node2, entry)) - { - if(entry->distance == EIGRP_MAX_METRIC) - { - eigrp_neighbor_entry_delete(prefix,entry); - } - } - if(prefix->distance == EIGRP_MAX_METRIC && prefix->nt != EIGRP_TOPOLOGY_TYPE_CONNECTED) - { - eigrp_prefix_entry_delete(table,prefix); - } + struct listnode *node1, *node2; + + struct eigrp_neighbor_entry *entry; + for (ALL_LIST_ELEMENTS(prefix->entries, node1, node2, entry)) + { + if(entry->distance == EIGRP_MAX_METRIC) + { + eigrp_neighbor_entry_delete(prefix,entry); + } + } + if(prefix->distance == EIGRP_MAX_METRIC && prefix->nt != EIGRP_TOPOLOGY_TYPE_CONNECTED) + { + eigrp_prefix_entry_delete(table,prefix); + } } /*int eigrp_topology_get_successor_count (struct eigrp_prefix_entry *prefix) diff --git a/eigrpd/eigrp_vty.c b/eigrpd/eigrp_vty.c index 60835ece18..61a1732923 100644 --- a/eigrpd/eigrp_vty.c +++ b/eigrpd/eigrp_vty.c @@ -518,12 +518,7 @@ DEFUN (show_ip_eigrp_interfaces, show_ip_eigrp_interface_header (vty, eigrp); } - // if ((strncmp (argv[1], "f", 1) == 0 && strncmp (eigrp_if_name_string (ei), "F",1) == 0) || - // (strncmp (argv[1], "l", 1) == 0 && strncmp (eigrp_if_name_string (ei), "L",1) == 0) || - // (strncmp (argv[1], "s", 1) == 0 && strncmp (eigrp_if_name_string (ei), "S",1) == 0)) - // { show_ip_eigrp_interface_sub (vty, eigrp, ei); - //} idx = 0; if (argv_find (argv, argc, "detail", &idx)) {