From: Donatas Abraitis Date: Fri, 9 Dec 2022 20:46:54 +0000 (+0200) Subject: bgpd: Fix crash for `show bgp attribute-info` X-Git-Tag: base_8.5~154^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=refs%2Fpull%2F12485%2Fhead;p=mirror%2Ffrr.git bgpd: Fix crash for `show bgp attribute-info` attr->srv6_vpn might be NULL as well. Let's check both. Happened after 073801481b0f298a22fa71ee7bbac74adb5e80b9. Signed-off-by: Donatas Abraitis --- diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c index ace7e79753..06fff41378 100644 --- a/bgpd/bgp_attr.c +++ b/bgpd/bgp_attr.c @@ -904,6 +904,12 @@ static void attrhash_finish(void) static void attr_show_all_iterator(struct hash_bucket *bucket, struct vty *vty) { struct attr *attr = bucket->data; + struct in6_addr *sid = NULL; + + if (attr->srv6_l3vpn) + sid = &attr->srv6_l3vpn->sid; + else if (attr->srv6_vpn) + sid = &attr->srv6_vpn->sid; vty_out(vty, "attr[%ld] nexthop %pI4\n", attr->refcnt, &attr->nexthop); @@ -911,9 +917,7 @@ static void attr_show_all_iterator(struct hash_bucket *bucket, struct vty *vty) "\tflags: %" PRIu64 " distance: %u med: %u local_pref: %u origin: %u weight: %u label: %u sid: %pI6\n", attr->flag, attr->distance, attr->med, attr->local_pref, - attr->origin, attr->weight, attr->label, - attr->srv6_l3vpn ? &attr->srv6_l3vpn->sid - : &attr->srv6_vpn->sid); + attr->origin, attr->weight, attr->label, sid); } void attr_show_all(struct vty *vty)