summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-06-05 07:18:37 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-06-05 07:18:37 +0000
commita3c32841e631590d26884731acd8f44a32516054 (patch)
tree21d98a4c3c0277a37e1daba692c1fea805d6f6b8
parent1156467726a21f2126e0b382223118298c623b22 (diff)
strdup the input to putenv to avoid in one case passing a string that is later
freed and in the other const strings. looks sane to millert, ok ray
-rw-r--r--cmd-string.c2
-rw-r--r--window.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/cmd-string.c b/cmd-string.c
index 1e471081..a5c5dd12 100644
--- a/cmd-string.c
+++ b/cmd-string.c
@@ -63,7 +63,7 @@ cmd_string_parse(const char *s, struct cmd_list **cmdlist, char **cause)
if ((t = strchr(s, ' ')) == NULL && (t = strchr(s, '\t')) == NULL)
t = strchr(s, '\0');
if ((u = strchr(s, '=')) != NULL && u < t) {
- if (putenv((char *) s) != 0) {
+ if (putenv(xstrdup(s)) != 0) {
xasprintf(cause, "assignment failed: %s", s);
return (-1);
}
diff --git a/window.c b/window.c
index 06733201..aeed4bc9 100644
--- a/window.c
+++ b/window.c
@@ -473,7 +473,7 @@ window_pane_spawn(struct window_pane *wp,
if (chdir(wp->cwd) != 0)
chdir("/");
for (envq = envp; *envq != NULL; envq++) {
- if (putenv((char *) *envq) != 0)
+ if (putenv(xstrdup(*envq)) != 0)
fatal("putenv failed");
}
sigreset();