From 34d05ea7cdc168f3f40ee8f7c1f203a216f2dfdf Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Fri, 29 Oct 2010 20:11:57 +0000 Subject: We now send argv to the server after parsing it in the client to get the command, so the client should not modify it. Instead, take a copy. Fixes parsing command lists, reported by mcbride@. --- cmd.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'cmd.c') diff --git a/cmd.c b/cmd.c index 20cf9cdc..af038b7b 100644 --- a/cmd.c +++ b/cmd.c @@ -166,6 +166,22 @@ cmd_unpack_argv(char *buf, size_t len, int argc, char ***argv) return (0); } +char ** +cmd_copy_argv(int argc, char **argv) +{ + char **new_argv; + int i; + + if (argc == 0) + return (NULL); + new_argv = xcalloc(argc, sizeof *new_argv); + for (i = 0; i < argc; i++) { + if (argv[i] != NULL) + new_argv[i] = xstrdup(argv[i]); + } + return (new_argv); +} + void cmd_free_argv(int argc, char **argv) { -- cgit