diff options
author | John Högberg <[email protected]> | 2018-01-08 09:28:03 +0100 |
---|---|---|
committer | John Högberg <[email protected]> | 2018-01-08 09:28:03 +0100 |
commit | 68a0f569410f7375c44a9d806930b1172c1d92a8 (patch) | |
tree | 4c2f6d8714613a068b74d115b5e8e725161f885b /erts/emulator/beam/io.c | |
parent | e2367ba51d0cc0cb4a65fd39d1a8b7bd943efe8e (diff) | |
parent | 185a0cdc2d0f72d64768dc6dd5465ad6fe561028 (diff) | |
download | otp-68a0f569410f7375c44a9d806930b1172c1d92a8.tar.gz otp-68a0f569410f7375c44a9d806930b1172c1d92a8.tar.bz2 otp-68a0f569410f7375c44a9d806930b1172c1d92a8.zip |
Merge branch 'john/erts/putenv-thread-safety/OTP-14666'
Diffstat (limited to 'erts/emulator/beam/io.c')
-rw-r--r-- | erts/emulator/beam/io.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/erts/emulator/beam/io.c b/erts/emulator/beam/io.c index 9933c8dda4..6158e9613a 100644 --- a/erts/emulator/beam/io.c +++ b/erts/emulator/beam/io.c @@ -7715,13 +7715,27 @@ int null_func(void) int erl_drv_putenv(const char *key, char *value) { - return erts_sys_putenv_raw((char*)key, value); + switch (erts_sys_explicit_8bit_putenv((char*)key, value)) { + case -1: /* Insufficient buffer space */ + return 1; + case 1: /* Success */ + return 0; + default: /* Not found */ + return -1; + } } int erl_drv_getenv(const char *key, char *value, size_t *value_size) { - return erts_sys_getenv_raw((char*)key, value, value_size); + switch (erts_sys_explicit_8bit_getenv((char*)key, value, value_size)) { + case -1: /* Insufficient buffer space */ + return 1; + case 1: /* Success */ + return 0; + default: /* Not found */ + return -1; + } } /* get heart_port |