com php-src: Merge branch 'master' into phpng: .travis.yml ext/opcache/Optimizer/pass1_5.c ext/opcache/ZendAccel erator.h ext/opcache/zend_persist.c
ext/spl/spl_arr ay.c ext/standard/iptc.c ext/standard/uuencode.c
| From: | Dmitry Stogov | Date: | Sun, 18 May 2014 17:17:31 +0000 |
| Subject: | com php-src: Merge branch 'master' into phpng: .travis.yml ext/opcache/Optimizer/pass1_5.c ext/opcache/ZendAccel erator.h ext/opcache/zend_persist.c ext/spl/spl_arr ay.c ext/standard/iptc.c ext/standard/uuencode.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-78450@lists.php.net to get a copy of this message | ||
Commit: b11a30f5eaeae2aa797ebef8722f4b1d51c72198
Author: Dmitry Stogov <dmitry@zend.com> Sun, 18 May 2014 21:17:31 +0400
Parents: 583bb6339b03ac64ab38dee792e4aedeaa7d5f07 91c475fc0094fb23a8f94408684e0c21e195bf48
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=b11a30f5eaeae2aa797ebef8722f4b1d51c72198
Log:
Merge branch 'master' into phpng
* master:
Support for __debugInfo (Joe Watkins)
Optimize ZEND_POW (Rouven Weßling)
gcov: tentative fix for broken coverage data after fix for opcache coverage slightly hackish, but
works. The idea is that we want to give priority to .gcda files in .libs dirs vs the files in the
upper level dir
gcov: tentative fix for broken coverage data after fix for opcache coverage slightly hackish, but
works. The idea is that we want to give priority to .gcda files in .libs dirs vs the files in the
upper level dir
Prevent recursion in ZF2 Parameters class
adding NEWS block for beta4
5.4.30 next
enable email notifications
update NEWS
update NEWS
update NEWS
- Updated to version 2014.3 (2014c)
fix bug #67253: timelib_meridian_with_check out-of-bounds read
Fix bug #67252: convert_uudecode out-of-bounds read
Fix bug #67251 - date_parse_from_format out-of-bounds read
Fix bug #67250 (iptcparse out-of-bounds read)
Conflicts:
ext/opcache/zend_persist.c
ext/spl/spl_array.c
Bugs:
https://bugs.php.net/67253
https://bugs.php.net/67252
https://bugs.php.net/67251
https://bugs.php.net/67250
Changed paths:
MM .travis.yml
MM ext/opcache/Optimizer/pass1_5.c
MM ext/opcache/ZendAccelerator.h
MM ext/opcache/zend_persist.c
MM ext/spl/spl_array.c
MM ext/standard/iptc.c
MM ext/standard/uuencode.c
Diff:
diff --cc .travis.yml
index f661807,5b49434..6973f48
--- a/.travis.yml
+++ b/.travis.yml
@@@ -4,12 -4,9 +4,13 @@@ php
# We only specify one version so we only get one worker
- 5.4
+branches:
+ except:
+ - phpng
+
notifications:
- email: false
+ email:
+ on_failure: change
env:
global:
diff --cc ext/spl/spl_array.c
index f830044,1fe795c..5c873f3
--- a/ext/spl/spl_array.c
+++ b/ext/spl/spl_array.c
@@@ -622,29 -591,27 +622,29 @@@ static void spl_array_unset_dimension(z
static int spl_array_has_dimension_ex(int check_inherited, zval *object, zval *offset, int
check_empty TSRMLS_DC) /* {{{ */
{
- spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
+ spl_array_object *intern = Z_SPLARRAY_P(object);
long index;
- zval *rv, *value = NULL, **tmp;
+ zval rv, *value = NULL, *tmp;
if (check_inherited && intern->fptr_offset_has) {
- zval *offset_tmp = offset;
- SEPARATE_ARG_IF_REF(offset_tmp);
- zend_call_method_with_1_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_has,
"offsetExists", &rv, offset_tmp);
- zval_ptr_dtor(&offset_tmp);
+//??? zval offset_tmp;
+//??? ZVAL_COPY_VALUE(&offset_tmp, offset);
+//??? SEPARATE_ARG_IF_REF(&offset_tmp);
+//??? zend_call_method_with_1_params(object, Z_OBJCE_P(object), &intern->fptr_offset_has,
"offsetExists", &rv, &offset_tmp);
+//??? zval_ptr_dtor(&offset_tmp);
+ SEPARATE_ARG_IF_REF(offset);
+ zend_call_method_with_1_params(object, Z_OBJCE_P(object), &intern->fptr_offset_has,
"offsetExists", &rv, offset);
+ zval_ptr_dtor(offset);
- if (rv && zend_is_true(rv TSRMLS_CC)) {
+ if (!Z_ISUNDEF(rv) && zend_is_true(&rv TSRMLS_CC)) {
zval_ptr_dtor(&rv);
- if (check_empty == 2) {
+ if (check_empty != 1) {
return 1;
} else if (intern->fptr_offset_get) {
- value = spl_array_read_dimension_ex(1, object, offset, BP_VAR_R TSRMLS_CC);
+ value = spl_array_read_dimension_ex(1, object, offset, BP_VAR_R, &rv TSRMLS_CC);
}
} else {
- if (rv) {
- zval_ptr_dtor(&rv);
- }
+ zval_ptr_dtor(&rv);
return 0;
}
}
@@@ -662,22 -629,17 +662,23 @@@
return 0;
}
break;
+
case IS_DOUBLE:
+ index = (long)Z_DVAL_P(offset);
+ goto num_index;
case IS_RESOURCE:
- case IS_BOOL:
+ index = Z_RES_HANDLE_P(offset);
+ goto num_index;
+ case IS_FALSE:
+ index = 0;
+ goto num_index;
+ case IS_TRUE:
+ index = 1;
+ goto num_index;
case IS_LONG:
- if (offset->type == IS_DOUBLE) {
- index = (long)Z_DVAL_P(offset);
- } else {
- index = Z_LVAL_P(offset);
- }
- if (zend_hash_index_find(ht, index, (void **)&tmp) != FAILURE) {
+ index = Z_LVAL_P(offset);
+num_index:
+ if ((tmp = zend_hash_index_find(ht, index)) != NULL) {
if (check_empty == 2) {
return 1;
}
@@@ -690,10 -653,10 +692,10 @@@
return 0;
}
- if (check_inherited && intern->fptr_offset_get) {
+ if (check_empty && check_inherited && intern->fptr_offset_get) {
- value = spl_array_read_dimension_ex(1, object, offset, BP_VAR_R TSRMLS_CC);
+ value = spl_array_read_dimension_ex(1, object, offset, BP_VAR_R, &rv TSRMLS_CC);
} else {
- value = *tmp;
+ value = tmp;
}
}