From: Ilia Alshanetsky Date: Sun, 24 Jun 2007 17:37:01 +0000 (+0000) Subject: Fixed bug #41685 (array_push() fails to warn when next index is already X-Git-Tag: php-5.2.4RC1~305 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=67a2cca930785936488a586ae3081da3cc2eb871;p=php Fixed bug #41685 (array_push() fails to warn when next index is already occupied). --- diff --git a/NEWS b/NEWS index d5f65faaf8..477e7c7f61 100644 --- a/NEWS +++ b/NEWS @@ -43,6 +43,8 @@ PHP NEWS - Fixed bug #41717 (imagepolygon does not respect thickness). (Pierre) - Fixed bug #41686 (Omitting length param in array_slice not possible). (Ilia) +- Fixed bug #41685 (array_push() fails to warn when next index is already + occupied). (Ilia) - Fixed bug #41655 (open_basedir bypass via glob()). (Ilia) - Fixed bug #41640 (get_class_vars produces error on class constants). (Johannes) diff --git a/ext/standard/array.c b/ext/standard/array.c index b698ead1ee..3ac7a2ae75 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1957,7 +1957,11 @@ PHP_FUNCTION(array_push) new_var = *args[i]; new_var->refcount++; - zend_hash_next_index_insert(Z_ARRVAL_P(stack), &new_var, sizeof(zval *), NULL); + if (zend_hash_next_index_insert(Z_ARRVAL_P(stack), &new_var, sizeof(zval *), NULL) == FAILURE) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot add element to the array as the next element is already occupied"); + efree(args); + RETURN_FALSE; + } } /* Clean up and return the number of values in the stack */