diff options
author | Zandra <[email protected]> | 2015-11-17 13:01:44 +0100 |
---|---|---|
committer | Zandra <[email protected]> | 2015-11-17 13:01:44 +0100 |
commit | a7f3e7c6e65d845e8a6d0c5e3b5fad83c1036ace (patch) | |
tree | 9f9e85cdf1237a74d71a4398f5a089d528df256d /erts/etc/common/ct_run.c | |
parent | e9442a7b93f6946b736b6b1e3621b405667ef672 (diff) | |
parent | d42741c7ec0cfe8287a2866a5e837d4da26a97ca (diff) | |
download | otp-a7f3e7c6e65d845e8a6d0c5e3b5fad83c1036ace.tar.gz otp-a7f3e7c6e65d845e8a6d0c5e3b5fad83c1036ace.tar.bz2 otp-a7f3e7c6e65d845e8a6d0c5e3b5fad83c1036ace.zip |
Merge branch 'maint'
Diffstat (limited to 'erts/etc/common/ct_run.c')
-rw-r--r-- | erts/etc/common/ct_run.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/erts/etc/common/ct_run.c b/erts/etc/common/ct_run.c index 548514ee6c..11cec26264 100644 --- a/erts/etc/common/ct_run.c +++ b/erts/etc/common/ct_run.c @@ -83,7 +83,6 @@ static int eargc; /* Number of arguments in eargv. */ static void error(char* format, ...); static char* emalloc(size_t size); static char* strsave(char* string); -static void push_words(char* src); static int run_erlang(char* name, char** argv); static char* get_default_emulator(char* progname); #ifdef __WIN32__ @@ -152,6 +151,8 @@ int main(int argc, char** argv) argv0 = argv; emulator = get_default_emulator(argv[0]); + if (strlen(emulator) >= MAXPATHLEN) + error("Emulator path length is too large"); /* * Allocate the argv vector to be used for arguments to Erlang. @@ -163,7 +164,7 @@ int main(int argc, char** argv) eargv_base = (char **) emalloc(eargv_size*sizeof(char*)); eargv = eargv_base; eargc = 0; - push_words(emulator); + PUSH(strsave(emulator)); eargc_base = eargc; eargv = eargv + eargv_size/2; eargc = 0; @@ -294,26 +295,6 @@ int main(int argc, char** argv) return run_erlang(eargv[0], eargv); } -static void -push_words(char* src) -{ - char sbuf[MAXPATHLEN]; - char* dst; - - dst = sbuf; - while ((*dst++ = *src++) != '\0') { - if (isspace((int)*src)) { - *dst = '\0'; - PUSH(strsave(sbuf)); - dst = sbuf; - do { - src++; - } while (isspace((int)*src)); - } - } - if (sbuf[0]) - PUSH(strsave(sbuf)); -} #ifdef __WIN32__ wchar_t *make_commandline(char **argv) { |