From 67a2cca930785936488a586ae3081da3cc2eb871 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Sun, 24 Jun 2007 17:37:01 +0000 Subject: [PATCH] Fixed bug #41685 (array_push() fails to warn when next index is already occupied). --- NEWS | 2 ++ ext/standard/array.c | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) 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 */ -- 2.50.1