From 8c33ccb98980de79d44053d94b559763ea78f805 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 30 May 2006 20:13:54 +0000 Subject: [PATCH] don't mutate getenv() result svn: r3133 --- src/mzscheme/dynsrc/ustart.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/mzscheme/dynsrc/ustart.c b/src/mzscheme/dynsrc/ustart.c index bea5e5844e..7b11588914 100644 --- a/src/mzscheme/dynsrc/ustart.c +++ b/src/mzscheme/dynsrc/ustart.c @@ -135,6 +135,20 @@ static char *string_append(char *s1, char *s2) return s; } +static char *copy_string(char *s1) +{ + int l1; + char *s; + + l1 = strlen(s1); + + s = (char *)malloc(l1 + 1); + + memcpy(s, s1, l1 + 1); + + return s; +} + static char *do_path_append(char *s1, int l1, char *s2) { int l2; @@ -224,7 +238,7 @@ int main(int argc, char **argv) me = path_append(getcwd(NULL, 0), me); } else { /* We have to find the executable by searching PATH: */ - char *path = getenv("PATH"), *p, *m; + char *path = copy_string(getenv("PATH")), *p, *m; int more; if (!path) {