Skip to content

Commit 29eb3bc

Browse files
authored
Merge pull request FRRouting#19879 from soumyar-roy/soumya/evpn_attr_crash
bgpd: Crash due to usage of freed up evpn_overlay attr
2 parents 639779a + 8b087b2 commit 29eb3bc

File tree

3 files changed

+3
-1
lines changed

3 files changed

+3
-1
lines changed

bgpd/bgp_attr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,7 @@ void evpn_overlay_free(struct bgp_route_evpn *bre)
554554
XFREE(MTYPE_BGP_EVPN_OVERLAY, bre);
555555
}
556556

557-
static struct bgp_route_evpn *evpn_overlay_intern(struct bgp_route_evpn *bre)
557+
struct bgp_route_evpn *evpn_overlay_intern(struct bgp_route_evpn *bre)
558558
{
559559
struct bgp_route_evpn *find;
560560

bgpd/bgp_attr.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,5 +683,6 @@ bgp_attr_set_vnc_subtlvs(struct attr *attr,
683683

684684
extern bool route_matches_soo(struct bgp_path_info *pi, struct ecommunity *soo);
685685
extern void evpn_overlay_free(struct bgp_route_evpn *bre);
686+
extern struct bgp_route_evpn *evpn_overlay_intern(struct bgp_route_evpn *bre);
686687

687688
#endif /* _QUAGGA_BGP_ATTR_H */

bgpd/bgp_route.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5197,6 +5197,7 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id,
51975197
* attr->evpn_overlay, so that, this can be stored in adj_in.
51985198
*/
51995199
if (evpn && afi == AFI_L2VPN) {
5200+
evpn = evpn_overlay_intern(evpn);
52005201
bgp_attr_set_evpn_overlay(attr, evpn);
52015202
p_evpn = NULL;
52025203
}

0 commit comments

Comments
 (0)