Fixed bug #61058 (array_fill leaks if start index is PHP_INT_MAX)

This commit is contained in:
Xinchen Hui 2012-02-12 04:59:08 +00:00
parent 2e61d04f49
commit c578917e30
2 changed files with 10 additions and 2 deletions

4
NEWS
View File

@ -45,6 +45,10 @@ PHP NEWS
. Fixed bug #60968 (Late static binding doesn't work with
ReflectionMethod::invokeArgs()). (Laruence)
- Array:
. Fixed bug #61058 (array_fill leaks if start index is PHP_INT_MAX).
(Laruence)
?? ??? 2012, PHP 5.3.10
(to be added)

View File

@ -1558,11 +1558,15 @@ PHP_FUNCTION(array_fill)
num--;
zval_add_ref(&val);
zend_hash_index_update(Z_ARRVAL_P(return_value), start_key, &val, sizeof(zval *), NULL);
if (zend_hash_index_update(Z_ARRVAL_P(return_value), start_key, &val, sizeof(zval *), NULL) == FAILURE) {
zval_ptr_dtor(&val);
}
while (num--) {
zval_add_ref(&val);
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &val, sizeof(zval *), NULL);
if (zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &val, sizeof(zval *), NULL) == FAILURE) {
zval_ptr_dtor(&val);
}
}
}
/* }}} */