From b5c8fce284a2bb529aee6ff201fe044f09a0e418 Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Mon, 11 Jul 2022 13:04:01 +0200 Subject: Added forgotten route source locking in flowspec validation --- nest/rt-table.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nest/rt-table.c b/nest/rt-table.c index 97bbc4f0..4500c888 100644 --- a/nest/rt-table.c +++ b/nest/rt-table.c @@ -2674,7 +2674,7 @@ static rte * rt_flowspec_update_rte(rtable *tab, rte *r) { #ifdef CONFIG_BGP - if (r->attrs->source != RTS_BGP) + if ((r->attrs->source != RTS_BGP) || (r->sender->proto != r->src->proto)) return NULL; struct bgp_channel *bc = (struct bgp_channel *) r->sender; @@ -2697,6 +2697,7 @@ rt_flowspec_update_rte(rtable *tab, rte *r) rte *new = sl_alloc(rte_slab); memcpy(new, r, sizeof(rte)); new->attrs = rta_lookup(a); + rt_lock_source(new->src); return new; #else -- cgit v1.2.3