From 1ad057aed6a16ba85ef5a770f7855d749ed94881 Mon Sep 17 00:00:00 2001 From: Rafael Zalamena Date: Thu, 14 Dec 2017 14:00:58 -0200 Subject: [PATCH] bgpd: handle argv_find_and_parse_afi return value Handle the return value of argv_find_and_parse_afi() to avoid passing along bad values. Signed-off-by: Rafael Zalamena --- bgpd/rfapi/bgp_rfapi_cfg.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bgpd/rfapi/bgp_rfapi_cfg.c b/bgpd/rfapi/bgp_rfapi_cfg.c index 3fbba66774..7f2dbe7f9d 100644 --- a/bgpd/rfapi/bgp_rfapi_cfg.c +++ b/bgpd/rfapi/bgp_rfapi_cfg.c @@ -1626,7 +1626,11 @@ DEFUN (vnc_nve_group_export_no_prefixlist, return CMD_WARNING_CONFIG_FAILED; } - 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_CONFIG_FAILED; + } + if (argv[idx-1]->text[0] == 'z') is_bgp = 0; idx += 2; /* skip afi and keyword */ @@ -1691,7 +1695,11 @@ DEFUN (vnc_nve_group_export_prefixlist, return CMD_WARNING_CONFIG_FAILED; } - 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_CONFIG_FAILED; + } + if (argv[idx-1]->text[0] == 'z') is_bgp = 0; idx = argc - 1; -- 2.39.5