diff options
Diffstat (limited to 'erts')
-rw-r--r-- | erts/etc/common/ct_run.c | 5 | ||||
-rw-r--r-- | erts/etc/common/dialyzer.c | 7 | ||||
-rw-r--r-- | erts/etc/common/typer.c | 5 |
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__ |