From f3a88e7272cd5b89e3d85b674db658f3a9ee87e1 Mon Sep 17 00:00:00 2001 From: anlan_cs Date: Fri, 18 Nov 2022 21:48:16 +0800 Subject: [PATCH] bgpd: fix null pointer dereference It is possible there is no ip address in type2 prefix, that leads to crash in `build_evpn_type2_prefix()`. Signed-off-by: anlan_cs --- bgpd/bgp_evpn_vty.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bgpd/bgp_evpn_vty.c b/bgpd/bgp_evpn_vty.c index 88c1329f48..6350093b27 100644 --- a/bgpd/bgp_evpn_vty.c +++ b/bgpd/bgp_evpn_vty.c @@ -2537,6 +2537,7 @@ static void evpn_show_route_vni_macip(struct vty *vty, struct bgp *bgp, safi_t safi; json_object *json_paths = NULL; struct ethaddr empty_mac = {}; + struct ipaddr empty_ip = {}; const struct prefix_evpn *evp; afi = AFI_L2VPN; @@ -2550,7 +2551,8 @@ static void evpn_show_route_vni_macip(struct vty *vty, struct bgp *bgp, return; } - build_evpn_type2_prefix(&p, mac ? mac : &empty_mac, ip); + build_evpn_type2_prefix(&p, mac ? mac : &empty_mac, + ip ? ip : &empty_ip); /* See if route exists. Look for both non-sticky and sticky. */ dest = bgp_evpn_vni_node_lookup(vpn, &p, NULL); -- 2.39.5