From 40bb2ccffa3d26e14942ff99d86f264e3dd3df46 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Wed, 12 Aug 2020 07:00:07 +0300 Subject: [PATCH] bgpd: Reuse bgp_adj_in for attr to avoid null dereference under aspath Passing "&attr" to "bgp_input_filter", which dereferences null "attr.aspath". Signed-off-by: Donatas Abraitis --- bgpd/bgp_route.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 3a627b4486..502b40e659 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -3062,12 +3062,14 @@ static uint32_t bgp_filtered_routes_count(struct peer *peer, afi_t afi, uint32_t count = 0; struct bgp_dest *dest; struct bgp_adj_in *ain; + struct attr attr = {}; struct bgp_table *table = peer->bgp->rib[afi][safi]; for (dest = bgp_table_top(table); dest; dest = bgp_route_next(dest)) { for (ain = dest->adj_in; ain; ain = ain->next) { const struct prefix *rn_p = bgp_dest_get_prefix(dest); - struct attr attr = {}; + + attr = *ain->attr; if (bgp_input_filter(peer, rn_p, &attr, afi, safi) == FILTER_DENY)