com php-src: Merge remote-tracking branch 'origin/PHP-5.6' into str_size_and_int64_56_backport: ext/date/ php_date.c ext/date/php_date.h
ext/fileinfo/libmagi c/softmagic.c ext/openssl/openssl.c ext/openssl/xp_ss l.c ext/standard/proc_open.c
| From: | Anatol Belski | Date: | Tue, 04 Mar 2014 18:50:25 +0000 |
| Subject: | com php-src: Merge remote-tracking branch 'origin/PHP-5.6' into str_size_and_int64_56_backport: ext/date/ php_date.c ext/date/php_date.h ext/fileinfo/libmagi c/softmagic.c ext/openssl/openssl.c ext/openssl/xp_ss l.c ext/standard/proc_open.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-76321@lists.php.net to get a copy of this message | ||
Commit: b186b2774abe3e63f7c4b40084a76c5733589493
Author: Anatol Belski <ab@php.net> Tue, 4 Mar 2014 19:50:25 +0100
Parents: 816e21982e1215a5c2591885516835758cacf8e5 834b719cf5808351904734bab5f97f2e88d8176e
Branches: str_size_and_int64_56_backport
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=b186b2774abe3e63f7c4b40084a76c5733589493
Log:
Merge remote-tracking branch 'origin/PHP-5.6' into str_size_and_int64_56_backport
* origin/PHP-5.6:
Improves fix for memory leak, keep in sync with upstream.
Add notice about tsrm_virtual_cwd.h moved to zend_virtual_cwd.h as this introduce need for awfull
hacks...
Fixed NEWS for #60602
Fixed news for #60602
Updated news for #60602
proc_open(): separate environment values that aren't strings
Added DateTimeImmutable::createFromMutable.
Sort alphabetically
Fixed NEWS.
Capture peer cert even if verify fails
Windows cert verify improvements + leak fixes
Updated news for #66535 and #66109
Updated NEWS for #66535
Conflicts:
ext/standard/proc_open.c
Bugs:
https://bugs.php.net/60602
https://bugs.php.net/66535
https://bugs.php.net/66109
Changed paths:
MM ext/date/php_date.c
MM ext/date/php_date.h
MM ext/fileinfo/libmagic/softmagic.c
MM ext/openssl/openssl.c
MM ext/openssl/xp_ssl.c
MM ext/standard/proc_open.c
Diff:
diff --cc ext/openssl/openssl.c
index 5f68e64,b480be9..5d06242
mode 100644,100755..100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
diff --cc ext/standard/proc_open.c
index 9d63d1b,f4c3b47...53bec8a
--- a/ext/standard/proc_open.c
+++ b/ext/standard/proc_open.c
@@@ -113,8 -112,17 +113,17 @@@ static php_process_env_t _php_array_to_
zend_hash_get_current_data_ex(target_hash, (void **) &element, &pos) == SUCCESS;
zend_hash_move_forward_ex(target_hash, &pos)) {
- convert_to_string_ex(element);
- el_len = Z_STRSIZE_PP(element);
+ if (Z_TYPE_PP(element) != IS_STRING) {
+ zval tmp;
+
+ MAKE_COPY_ZVAL(element, &tmp);
+ convert_to_string(&tmp);
- el_len = Z_STRLEN(tmp);
++ el_len = Z_STRSIZE(tmp);
+
+ zval_dtor(&tmp);
+ } else {
- el_len = Z_STRLEN_PP(element);
++ el_len = Z_STRSIZE_PP(element);
+ }
if (el_len == 0) {
continue;
}
@@@ -139,15 -147,22 +148,22 @@@
for (zend_hash_internal_pointer_reset_ex(target_hash, &pos);
zend_hash_get_current_data_ex(target_hash, (void **) &element, &pos) == SUCCESS;
zend_hash_move_forward_ex(target_hash, &pos)) {
+ zval tmp;
+
+ if (Z_TYPE_PP(element) != IS_STRING) {
+ MAKE_COPY_ZVAL(element, &tmp);
+ convert_to_string(&tmp);
+ } else {
+ tmp = **element;
+ }
- convert_to_string_ex(element);
- el_len = Z_STRSIZE_PP(element);
- el_len = Z_STRLEN(tmp);
++ el_len = Z_STRSIZE(tmp);
if (el_len == 0) {
- continue;
+ goto next_element;
}
- data = Z_STRVAL_PP(element);
+ data = Z_STRVAL(tmp);
switch (zend_hash_get_current_key_ex(target_hash, &string_key, &string_length,
&num_key, 0, &pos)) {
case HASH_KEY_IS_STRING:
if (string_length == 0) {