aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hush.c5
-rw-r--r--shell/hush.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/hush.c b/hush.c
index e58ac44b3..a5f634b9a 100644
--- a/hush.c
+++ b/hush.c
@@ -469,7 +469,10 @@ static int builtin_export(struct child_prog *child)
if (child->argv[1] == NULL) {
return (builtin_env(child));
}
- res = putenv(child->argv[1]);
+ /* FIXME -- I leak memory. This will be
+ * fixed up properly when we add local
+ * variable support -- I hope */
+ res = putenv(strdup(child->argv[1]));
if (res)
fprintf(stderr, "export: %s\n", strerror(errno));
return (res);
diff --git a/shell/hush.c b/shell/hush.c
index e58ac44b3..a5f634b9a 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -469,7 +469,10 @@ static int builtin_export(struct child_prog *child)
if (child->argv[1] == NULL) {
return (builtin_env(child));
}
- res = putenv(child->argv[1]);
+ /* FIXME -- I leak memory. This will be
+ * fixed up properly when we add local
+ * variable support -- I hope */
+ res = putenv(strdup(child->argv[1]));
if (res)
fprintf(stderr, "export: %s\n", strerror(errno));
return (res);