diff options
| author | Joe Watkins <krakjoe@php.net> | 2019-03-29 08:01:31 +0100 |
|---|---|---|
| committer | Joe Watkins <krakjoe@php.net> | 2019-03-29 19:06:02 +0100 |
| commit | 072eb6dd77b079a6f90ca5b155f9b0add1b5f2d4 (patch) | |
| tree | b808bffb52c45033bfae2cb09d9dbd0283d0e0cf /ext/standard/basic_functions.c | |
| parent | 61ad294f26fa7941a26361a68cf6a01b8a2c3e4f (diff) | |
| download | php-git-072eb6dd77b079a6f90ca5b155f9b0add1b5f2d4.tar.gz | |
tsrm environment lock
Diffstat (limited to 'ext/standard/basic_functions.c')
| -rw-r--r-- | ext/standard/basic_functions.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index d281730afa..ba4b5ee68c 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -3832,7 +3832,9 @@ PHP_RSHUTDOWN_FUNCTION(basic) /* {{{ */ ZVAL_UNDEF(&BG(strtok_zval)); BG(strtok_string) = NULL; #ifdef HAVE_PUTENV + tsrm_env_lock(); zend_hash_destroy(&BG(putenv_ht)); + tsrm_env_unlock(); #endif BG(mt_rand_is_seeded) = 0; @@ -4141,11 +4143,22 @@ PHP_FUNCTION(getenv) } } #else + + tsrm_env_lock(); + /* system method returns a const */ ptr = getenv(str); + if (ptr) { - RETURN_STRING(ptr); + RETVAL_STRING(ptr); } + + tsrm_env_unlock(); + + if (ptr) { + return; + } + #endif RETURN_FALSE; } @@ -4196,6 +4209,7 @@ PHP_FUNCTION(putenv) } #endif + tsrm_env_lock(); zend_hash_str_del(&BG(putenv_ht), pe.key, pe.key_len); /* find previous value */ @@ -4256,6 +4270,7 @@ PHP_FUNCTION(putenv) tzset(); } #endif + tsrm_env_unlock(); #if defined(PHP_WIN32) free(keyw); free(valw); |
