]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Cleanup SA error in ignoring return from function
authorDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 5 Dec 2017 15:09:36 +0000 (10:09 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 11 Dec 2017 13:42:51 +0000 (08:42 -0500)
Ignoring the return from argv_find_and_parse_afi
makes the SA system assume that you could pass a AFI_MAX
value to bgp_show_route.  Which in turn would cause
an array out of bounds read.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_route.c

index a655bd0b6f4f869662e368e146e4435ef5a9ef1a..8774e3e806d71f92a1fd86655b9f5ca6d7ac9da5 100644 (file)
@@ -10569,12 +10569,17 @@ DEFUN (show_bgp_afi_vpn_rd_route,
        afi_t afi = AFI_MAX;
        int idx = 0;
 
-       (void)argv_find_and_parse_afi(argv, argc, &idx, &afi);
+       if (!argv_find_and_parse_afi(argv, argc, &idx, &afi)) {
+               vty_out(vty, "%% Malformed Address Family\n");
+               return CMD_WARNING;
+       }
+
        ret = str2prefix_rd(argv[5]->arg, &prd);
        if (!ret) {
                vty_out(vty, "%% Malformed Route Distinguisher\n");
                return CMD_WARNING;
        }
+
        return bgp_show_route(vty, NULL, argv[6]->arg, afi, SAFI_MPLS_VPN, &prd,
                              0, BGP_PATH_ALL, use_json(argc, argv));
 }