From: Maria Matejka Date: Mon, 11 Jul 2022 11:04:01 +0000 (+0200) Subject: Added forgotten route source locking in flowspec validation X-Git-Tag: v2.0.11~37 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b5c8fce284a2bb529aee6ff201fe044f09a0e418;p=thirdparty%2Fbird.git Added forgotten route source locking in flowspec validation --- diff --git a/nest/rt-table.c b/nest/rt-table.c index 97bbc4f0c..4500c8889 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