]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Fix crash for `show bgp attribute-info`
authorDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 9 Dec 2022 20:46:54 +0000 (22:46 +0200)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Sun, 11 Dec 2022 18:41:03 +0000 (20:41 +0200)
attr->srv6_vpn might be NULL as well. Let's check both.

Happened after 073801481b0f298a22fa71ee7bbac74adb5e80b9.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgp_attr.c

index ace7e7975331c28da2e97a608fee4c3a237fa27d..06fff413782dc860143b9f10f097ffdd166f6c45 100644 (file)
@@ -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)