summaryrefslogtreecommitdiffstats
path: root/src/vpp/app
diff options
context:
space:
mode:
Diffstat (limited to 'src/vpp/app')
-rw-r--r--src/vpp/app/l2t.c9
-rw-r--r--src/vpp/app/vpe_cli.c24
2 files changed, 25 insertions, 8 deletions
diff --git a/src/vpp/app/l2t.c b/src/vpp/app/l2t.c
index 45dd2807..e1eda155 100644
--- a/src/vpp/app/l2t.c
+++ b/src/vpp/app/l2t.c
@@ -254,6 +254,7 @@ l2tp_session_add_command_fn (vlib_main_t * vm,
u32 local_session_id = 1, remote_session_id = 1;
int our_address_set = 0, client_address_set = 0;
int l2_sublayer_present = 0;
+ clib_error_t *error = NULL;
/* Get a line of input. */
if (!unformat_user (input, unformat_line_input, line_input))
@@ -290,8 +291,12 @@ l2tp_session_add_command_fn (vlib_main_t * vm,
else if (unformat (line_input, "l2-sublayer-present"))
l2_sublayer_present = 1;
else
- return clib_error_return (0, "parse error: '%U'",
- format_unformat_error, line_input);
+ {
+ error = clib_error_return (0, "parse error: '%U'",
+ format_unformat_error, line_input);
+ unformat_free (line_input);
+ return error;
+ }
}
unformat_free (line_input);
diff --git a/src/vpp/app/vpe_cli.c b/src/vpp/app/vpe_cli.c
index a26bf71f..94bdc84c 100644
--- a/src/vpp/app/vpe_cli.c
+++ b/src/vpp/app/vpe_cli.c
@@ -36,6 +36,7 @@ virtual_ip_cmd_fn_command_fn (vlib_main_t * vm,
mac_addr_t *mac_addrs = 0;
u32 sw_if_index;
u32 i;
+ clib_error_t *error = NULL;
next_hops = NULL;
rpaths = NULL;
@@ -49,7 +50,11 @@ virtual_ip_cmd_fn_command_fn (vlib_main_t * vm,
if (!unformat (line_input, "%U %U",
unformat_ip4_address, &prefix.fp_addr.ip4,
unformat_vnet_sw_interface, vnm, &sw_if_index))
- goto barf;
+ {
+ error = clib_error_return (0, "unknown input `%U'",
+ format_unformat_error, line_input);
+ goto done;
+ }
while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
{
@@ -67,13 +72,18 @@ virtual_ip_cmd_fn_command_fn (vlib_main_t * vm,
}
else
{
- barf:
- return clib_error_return (0, "unknown input `%U'",
- format_unformat_error, input);
+ error = clib_error_return (0, "unknown input `%U'",
+ format_unformat_error, line_input);
+ goto done;
}
}
+
if (vec_len (mac_addrs) == 0 || vec_len (mac_addrs) != vec_len (next_hops))
- goto barf;
+ {
+ error = clib_error_return (0, "unknown input `%U'",
+ format_unformat_error, line_input);
+ goto done;
+ }
/* Create / delete special interface route /32's */
@@ -100,10 +110,12 @@ virtual_ip_cmd_fn_command_fn (vlib_main_t * vm,
&prefix,
FIB_SOURCE_CLI, FIB_ENTRY_FLAG_NONE, rpaths);
+done:
vec_free (mac_addrs);
vec_free (next_hops);
+ unformat_free (line_input);
- return 0;
+ return error;
}
/* *INDENT-OFF* */