From 45e92ba2ced91eba4cc432d3addaafdd2a326689 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Mon, 7 May 2001 23:53:09 +0000 Subject: [PATCH] This patch from Evin Robertson fixes export so it works. This way leaks memory, but oh well. We will probably fix that when we get around to doing local variables. --- hush.c | 5 ++++- shell/hush.c | 5 ++++- 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);