diff options
| -rw-r--r-- | eigrpd/eigrp_interface.c | 18 | 
1 files changed, 7 insertions, 11 deletions
diff --git a/eigrpd/eigrp_interface.c b/eigrpd/eigrp_interface.c index e6cfe1deea..4ad1005f2f 100644 --- a/eigrpd/eigrp_interface.c +++ b/eigrpd/eigrp_interface.c @@ -114,6 +114,8 @@ int eigrp_if_delete_hook(struct interface *ifp)  	eigrp = ei->eigrp;  	listnode_delete(eigrp->eiflist, ei); +	eigrp_fifo_free(ei->obuf); +  	XFREE(MTYPE_EIGRP_IF_INFO, ifp->info);  	ifp->info = NULL; @@ -265,16 +267,11 @@ void eigrp_if_stream_unset(struct eigrp_interface *ei)  {  	struct eigrp *eigrp = ei->eigrp; -	if (ei->obuf) { -		eigrp_fifo_free(ei->obuf); -		ei->obuf = NULL; - -		if (ei->on_write_q) { -			listnode_delete(eigrp->oi_write_q, ei); -			if (list_isempty(eigrp->oi_write_q)) -				thread_cancel(eigrp->t_write); -			ei->on_write_q = 0; -		} +	if (ei->on_write_q) { +		listnode_delete(eigrp->oi_write_q, ei); +		if (list_isempty(eigrp->oi_write_q)) +			thread_cancel(eigrp->t_write); +		ei->on_write_q = 0;  	}  } @@ -351,7 +348,6 @@ void eigrp_if_free(struct eigrp_interface *ei, int source)  	eigrp_if_down(ei); -	list_delete(&ei->nbrs);  	listnode_delete(ei->eigrp->eiflist, ei);  }  | 
