From 39e277be3c05dd13e92766cb8fc8ffc58cefdd53 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Mon, 6 Dec 2010 21:48:56 +0000 Subject: |--------------------- |PatchSet 781 |Date: 2010/10/29 21:11:57 |Author: nicm |Branch: HEAD |Tag: (none) |Log: |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@. | |Members: | cmd-list.c:1.5->1.6 | cmd.c:1.45->1.46 | tmux.h:1.244->1.245 --- cmd.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'cmd.c') diff --git a/cmd.c b/cmd.c index 288b8ff8..a83fddfc 100644 --- a/cmd.c +++ b/cmd.c @@ -1,4 +1,4 @@ -/* $Id: cmd.c,v 1.144 2010-10-24 01:34:30 tcunha Exp $ */ +/* $Id: cmd.c,v 1.145 2010-12-06 21:48:56 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -165,6 +165,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