diff options
author | Stanislav Malyshev <stas@php.net> | 2016-07-19 01:44:14 -0700 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2016-07-19 01:44:14 -0700 |
commit | 70d6ce336847b9acf2d8069075c14af74eda4c6d (patch) | |
tree | 3f1a684c7d093328aa74db9d934efff4a763866f /ext/standard/basic_functions.c | |
parent | 5c90f9b9cdf61ff285aa902cf368ecd184bafd17 (diff) | |
parent | b00f8f2a5bae651d6375ca34c676963f1f25ee5a (diff) | |
download | php-git-70d6ce336847b9acf2d8069075c14af74eda4c6d.tar.gz |
Merge branch 'PHP-7.0'
* PHP-7.0: (27 commits)
fix #72519, possible OOB using imagegif
fix #72512, invalid read or write for palette image when invalid transparent index is used
Apparently some envs miss SIZE_MAX
Fix tests
Fix bug #72618: NULL Pointer Dereference in exif_process_user_comment
Partial fix for bug #72613 - do not allow reading past error read
Partial fix for bug #72613 - do not treat negative returns from bz2 as size_t
Fix bug #72606: heap-buffer-overflow (write) simplestring_addn simplestring.c
Fix for bug #72558, Integer overflow error within _gdContributionsAlloc()
Fix bug #72603: Out of bound read in exif_process_IFD_in_MAKERNOTE
update NEWS
Fixed bug #72570 Segmentation fault when binding parameters on a query without placeholders
Fix bug #72562 - destroy var_hash properly
Fix bug #72551 and bug #72552 - check before converting size_t->int
Fix bug #72541 - size_t overflow lead to heap corruption
Fix bug #72533 (locale_accept_from_http out-of-bounds access)
Fix fir bug #72520
Fix for bug #72513
Fix for bug #72513
CS fix and comments with bug ID
...
Conflicts:
ext/standard/basic_functions.c
Diffstat (limited to 'ext/standard/basic_functions.c')
-rw-r--r-- | ext/standard/basic_functions.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index fd1596e5cd..1cef26c3ae 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -4019,15 +4019,16 @@ PHP_FUNCTION(long2ip) * System Functions * ********************/ -/* {{{ proto string getenv([string varname]) +/* {{{ proto string getenv(string varname[, bool local_only] Get the value of an environment variable or every available environment variable if no varname is present */ PHP_FUNCTION(getenv) { char *ptr, *str = NULL; size_t str_len; + zend_bool local_only = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s", &str, &str_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "|sb", &str, &str_len, &local_only) == FAILURE) { RETURN_FALSE; } @@ -4037,13 +4038,15 @@ PHP_FUNCTION(getenv) return; } - /* SAPI method returns an emalloc()'d string */ - ptr = sapi_getenv(str, str_len); - if (ptr) { - // TODO: avoid realocation ??? - RETVAL_STRING(ptr); - efree(ptr); - return; + if (!local_only) { + /* SAPI method returns an emalloc()'d string */ + ptr = sapi_getenv(str, str_len); + if (ptr) { + // TODO: avoid realocation ??? + RETVAL_STRING(ptr); + efree(ptr); + return; + } } #ifdef PHP_WIN32 { |