summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2015-11-27 20:58:54 +0100
committerJiří Klimeš <jklimes@redhat.com>2015-11-28 19:48:02 +0100
commit1b0be2bab00d77578c5f71101488a8d3a556944f (patch)
tree81d1112e638f5377769ecf87dc4f8eeef438bff2
parent3d1557eaad4d408218bee8996c3721eb2aa5e22c (diff)
downloadNetworkManager-1b0be2bab00d77578c5f71101488a8d3a556944f.tar.gz
cli: fix a crash in 'nmcli -a con clone'
when providing empty arguments. Fixes: 0c65b289601d46edb0a950e291ddd376e368ccfd
-rw-r--r--clients/cli/connections.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index a8f1d69c3e..da41178437 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -9465,20 +9465,30 @@ do_connection_clone (NmCli *nmc, gboolean temporary, int argc, char **argv)
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto finish;
}
- name = *argv;
}
name = *argv;
- if (!name) {
- g_string_printf (nmc->return_text, _("Error: connection ID is missing."));
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto finish;
- }
if (next_arg (&argc, &argv) != 0) {
g_string_printf (nmc->return_text, _("Error: <new name> argument is missing."));
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto finish;
}
new_name = *argv;
+ if (next_arg (&argc, &argv) == 0) {
+ g_string_printf (nmc->return_text, _("Error: unexpected extra argument '%s'."), *argv);
+ nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
+ goto finish;
+ }
+ }
+
+ if (!name) {
+ g_string_printf (nmc->return_text, _("Error: connection ID is missing."));
+ nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
+ goto finish;
+ }
+ if (!new_name) {
+ g_string_printf (nmc->return_text, _("Error: <new name> argument is missing."));
+ nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
+ goto finish;
}
connection = nmc_find_connection (nmc->connections, selector, name, NULL);