diff --git a/src/ostadmin/ot-admin-builtin-deploy.c b/src/ostadmin/ot-admin-builtin-deploy.c index e35eeec2..4665889f 100644 --- a/src/ostadmin/ot-admin-builtin-deploy.c +++ b/src/ostadmin/ot-admin-builtin-deploy.c @@ -368,15 +368,15 @@ ot_admin_builtin_deploy (int argc, char **argv, GError **error) if (!g_option_context_parse (context, &argc, &argv, error)) goto out; - if (argc < 3) + if (argc < 2) { ot_util_usage_error (context, "NAME must be specified", error); goto out; } - deploy_target = argv[2]; - if (argc > 3) - revision = argv[3]; + deploy_target = argv[1]; + if (argc > 2) + revision = argv[2]; if (!do_checkout (self, deploy_target, revision, cancellable, error)) goto out; diff --git a/src/ostadmin/ot-admin-main.c b/src/ostadmin/ot-admin-main.c index 52b26f66..6052d901 100644 --- a/src/ostadmin/ot-admin-main.c +++ b/src/ostadmin/ot-admin-main.c @@ -61,14 +61,15 @@ prep_builtin_argv (const char *builtin, { int i; char **cmd_argv; - - cmd_argv = g_new0 (char *, argc + 2); - - cmd_argv[0] = (char*)builtin; - for (i = 0; i < argc; i++) - cmd_argv[i+1] = argv[i]; - cmd_argv[i+1] = NULL; - *out_argc = argc+1; + + /* Should be argc - 1 + 1, to account for + the first argument (removed) and for NULL pointer */ + cmd_argv = g_new0 (char *, argc); + + for (i = 0; i < argc-1; i++) + cmd_argv[i] = argv[i+1]; + cmd_argv[i] = NULL; + *out_argc = argc-1; *out_argv = cmd_argv; } @@ -123,7 +124,7 @@ ot_admin_main (int argc, goto out; } - prep_builtin_argv (cmd, argc-1, argv+1, &cmd_argc, &cmd_argv); + prep_builtin_argv (cmd, argc, argv, &cmd_argc, &cmd_argv); if (!builtin->fn (cmd_argc, cmd_argv, &error)) goto out;