diff options
| author | Sverker Eriksson <sverker@erlang.org> | 2022-11-17 13:23:50 +0100 |
|---|---|---|
| committer | Sverker Eriksson <sverker@erlang.org> | 2022-11-17 13:23:50 +0100 |
| commit | b24f783b0a21e39f2cba5630dc24086d44cd9a1d (patch) | |
| tree | aa50ff5804c9336ea5fce2278dad61836fd500b6 | |
| parent | 190f6826ef2623b0025d3b18ee96991a0802d6f9 (diff) | |
| parent | e374e3feea4194480746fe35e80c0e3fbe65d552 (diff) | |
| download | erlang-b24f783b0a21e39f2cba5630dc24086d44cd9a1d.tar.gz | |
Merge branch 'sverker/erts/erlang-display-stdin-freebsd'
| -rw-r--r-- | erts/emulator/beam/bif.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/erts/emulator/beam/bif.c b/erts/emulator/beam/bif.c index 4aaf4b4649..5ccb62800d 100644 --- a/erts/emulator/beam/bif.c +++ b/erts/emulator/beam/bif.c @@ -4210,7 +4210,13 @@ BIF_RETTYPE display_string_2(BIF_ALIST_2) } #if defined(HAVE_SYS_IOCTL_H) && defined(TIOCSTI) else if (ERTS_IS_ATOM_STR("stdin", BIF_ARG_1)) { - fd = open("/proc/self/fd/0",0); + const char stdin_fname[] = "/dev/tty"; + fd = open(stdin_fname,0); + if (fd < 0) { + fprintf(stderr,"failed to open %s (%s)\r\n", stdin_fname, + strerror(errno)); + goto error; + } } #endif #endif @@ -4275,7 +4281,8 @@ error: { char *errnostr = erl_errno_id(errno); #endif BIF_P->fvalue = am_atom_put(errnostr, strlen(errnostr)); - erts_free(ERTS_ALC_T_TMP, (void *) str); + if (temp_alloc) + erts_free(ERTS_ALC_T_TMP, (void *) temp_alloc); BIF_ERROR(p, BADARG | EXF_HAS_EXT_INFO); } } |
