diff --git a/src/route_bgp.c b/src/route_bgp.c index f77285d..6d29da7 100644 --- a/src/route_bgp.c +++ b/src/route_bgp.c @@ -84,12 +84,12 @@ static void route_bgp_broadcast_withdraw(struct ROUTE_BGP* bgp, uint64_t node_id } struct NODEINFO_Q* nq = route_bgp_get_node(bgp, node_id); if (!nq) { - DEBUG_WARN(DEBUG_CATEGORY_BGP, "node not found"); - return; + DEBUG_INFO(DEBUG_CATEGORY_BGP, "node not found for broadcast (already purged)"); + nq = NULL; } - if (wd_source != 0 && nq->paths) { + if (nq && wd_source != 0 && nq->paths) { } - if (nq->paths && queue_entry_count(nq->paths) == 0) { + if (nq && nq->paths && queue_entry_count(nq->paths) == 0) { if (bgp->instance && bgp->instance->rt) route_delete(bgp->instance->rt, nq); nq->dirty = 1; }