summaryrefslogtreecommitdiffstats
path: root/cmd.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2020-06-04 10:01:20 +0100
committerThomas Adam <thomas@xteddy.org>2020-06-04 10:01:20 +0100
commitb0a60258979faeb9e35863eb1bb2deab269d168b (patch)
tree3210103bb307cc74d4b945975666f149ca568f69 /cmd.c
parentf837dcdd58706d936308afd2617b7cecbfa1d264 (diff)
parentd3c5202f50c28586a5a4e97b77332b57b798335b (diff)
Merge branch 'obsd-master'
Diffstat (limited to 'cmd.c')
-rw-r--r--cmd.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/cmd.c b/cmd.c
index 09483680..7e7cac4d 100644
--- a/cmd.c
+++ b/cmd.c
@@ -356,25 +356,27 @@ cmd_free_argv(int argc, char **argv)
char *
cmd_stringify_argv(int argc, char **argv)
{
- char *buf;
+ char *buf = NULL, *s;
+ size_t len = 0;
int i;
- size_t len;
if (argc == 0)
return (xstrdup(""));
- len = 0;
- buf = NULL;
-
for (i = 0; i < argc; i++) {
- len += strlen(argv[i]) + 1;
+ s = args_escape(argv[i]);
+ log_debug("%s: %u %s = %s", __func__, i, argv[i], s);
+
+ len += strlen(s) + 1;
buf = xrealloc(buf, len);
if (i == 0)
*buf = '\0';
else
strlcat(buf, " ", len);
- strlcat(buf, argv[i], len);
+ strlcat(buf, s, len);
+
+ free(s);
}
return (buf);
}