diff options
-rw-r--r-- | hush.c | 5 | ||||
-rw-r--r-- | shell/hush.c | 5 |
2 files changed, 8 insertions, 2 deletions
@@ -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); |