summaryrefslogtreecommitdiff
path: root/erts
diff options
context:
space:
mode:
Diffstat (limited to 'erts')
-rw-r--r--erts/etc/common/ct_run.c5
-rw-r--r--erts/etc/common/dialyzer.c7
-rw-r--r--erts/etc/common/typer.c5
3 files changed, 11 insertions, 6 deletions
diff --git a/erts/etc/common/ct_run.c b/erts/etc/common/ct_run.c
index efa7ac3493..b8551eaeaf 100644
--- a/erts/etc/common/ct_run.c
+++ b/erts/etc/common/ct_run.c
@@ -188,6 +188,7 @@ int main(int argc, char** argv)
eargv = eargv_base;
eargc = 0;
push_words(emulator);
+ free(emulator);
eargc_base = eargc;
eargv = eargv + eargv_size/2;
eargc = 0;
@@ -516,7 +517,7 @@ get_default_emulator(char* progname)
char* s;
if (strlen(progname) >= sizeof(sbuf))
- return ERL_NAME;
+ return strsave(ERL_NAME);
strcpy(sbuf, progname);
for (s = sbuf+strlen(sbuf); s >= sbuf; s--) {
@@ -527,7 +528,7 @@ get_default_emulator(char* progname)
break;
}
}
- return ERL_NAME;
+ return strsave(ERL_NAME);
}
#ifdef __WIN32__
diff --git a/erts/etc/common/dialyzer.c b/erts/etc/common/dialyzer.c
index 37e07878ff..ae16d0c32b 100644
--- a/erts/etc/common/dialyzer.c
+++ b/erts/etc/common/dialyzer.c
@@ -214,6 +214,9 @@ int main(int argc, char** argv)
eargv = eargv_base;
eargc = 0;
push_words(emulator);
+ if (emulator != env) {
+ free(emulator);
+ }
eargc_base = eargc;
eargv = eargv + eargv_size/2;
eargc = 0;
@@ -485,7 +488,7 @@ get_default_emulator(char* progname)
char* s;
if (strlen(progname) >= sizeof(sbuf))
- return ERL_NAME;
+ return strsave(ERL_NAME);
strcpy(sbuf, progname);
for (s = sbuf+strlen(sbuf); s >= sbuf; s--) {
@@ -496,7 +499,7 @@ get_default_emulator(char* progname)
break;
}
}
- return ERL_NAME;
+ return strsave(ERL_NAME);
}
#ifdef __WIN32__
diff --git a/erts/etc/common/typer.c b/erts/etc/common/typer.c
index f13135d883..c7af00bb46 100644
--- a/erts/etc/common/typer.c
+++ b/erts/etc/common/typer.c
@@ -163,6 +163,7 @@ main(int argc, char** argv)
eargv = eargv_base;
eargc = 0;
push_words(emulator);
+ free(emulator);
eargc_base = eargc;
eargv = eargv + eargv_size/2;
eargc = 0;
@@ -410,7 +411,7 @@ get_default_emulator(char* progname)
char* s;
if (strlen(progname) >= sizeof(sbuf))
- return ERL_NAME;
+ return strsave(ERL_NAME);
strcpy(sbuf, progname);
for (s = sbuf+strlen(sbuf); s >= sbuf; s--) {
@@ -421,7 +422,7 @@ get_default_emulator(char* progname)
break;
}
}
- return ERL_NAME;
+ return strsave(ERL_NAME);
}
#ifdef __WIN32__