]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: fix show bgp l2vpn evpn route rd crashes
authorTrey Aspelund <taspelund@nvidia.com>
Thu, 4 Aug 2022 01:43:31 +0000 (01:43 +0000)
committerTrey Aspelund <taspelund@nvidia.com>
Thu, 4 Aug 2022 01:50:54 +0000 (01:50 +0000)
bgpd was crashing every time `show bgp l2vpn evpn route rd` was issued
with an RD that didn't match "all".  This was introduced by 9b01d289883
which changed how argv_find() is handled in various vtysh commands, but
the new changes forgot a "!".  So let's re-add the "!".

Before:
```
ub20# show bgp l2vpn evpn route rd 399672:100
vtysh: error reading from bgpd: Resource temporarily unavailable (11)Warning: closing connection to bgpd because of an I/O error!
ub20#

ub20# show bgp l2vpn evpn route rd 399672:100 mac 11:11:11:11:11:11
vtysh: error reading from bgpd: Resource temporarily unavailable (11)Warning: closing connection to bgpd because of an I/O error!
ub20#
```

After:
```
ub20# show bgp l2vpn evpn route rd 399672:100
ub20#

ub20# show bgp l2vpn evpn route rd 399672:100 mac 11:11:11:11:11:11
% Network not in table
ub20#
```

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
bgpd/bgp_evpn_vty.c

index a94ff5ef64f12cd3fc31b08464fa64b3cd4e7d2b..44bd66e5a8d8fa49389819a9170015b418c30478 100644 (file)
@@ -4700,7 +4700,7 @@ DEFUN(show_bgp_l2vpn_evpn_route_rd,
        if (uj)
                json = json_object_new_object();
 
-       if (argv_find(argv, argc, "all", &rd_all)) {
+       if (!argv_find(argv, argc, "all", &rd_all)) {
                /* get the RD */
                if (argv_find(argv, argc, "ASN:NN_OR_IP-ADDRESS:NN",
                              &idx_ext_community)) {
@@ -4772,7 +4772,7 @@ DEFUN(show_bgp_l2vpn_evpn_route_rd_macip,
                json = json_object_new_object();
 
        /* get the prd */
-       if (argv_find(argv, argc, "all", &rd_all)) {
+       if (!argv_find(argv, argc, "all", &rd_all)) {
                if (argv_find(argv, argc, "ASN:NN_OR_IP-ADDRESS:NN",
                              &idx_ext_community)) {
                        ret = str2prefix_rd(argv[idx_ext_community]->arg, &prd);