diff options
author | Tjerk Meesters <datibbaw@php.net> | 2014-07-30 18:17:13 +0800 |
---|---|---|
committer | Tjerk Meesters <datibbaw@php.net> | 2014-07-30 18:17:13 +0800 |
commit | e9967292c37d5bde48e568745d14d6222e989d63 (patch) | |
tree | 2ea28539bf41fd02cfbb2191b0e3ba28bdc8ed76 | |
parent | aa3ddda8e504dd2a01e6fa786efda7d3888a9241 (diff) | |
parent | b3466f862fcafde742515e7cdd1e170c03837af5 (diff) | |
download | php-git-e9967292c37d5bde48e568745d14d6222e989d63.tar.gz |
Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
Updated NEWS for #67693
Fixed bug #67693 - incorrect push to the empty array
-rw-r--r-- | ext/standard/array.c | 2 | ||||
-rw-r--r-- | ext/standard/tests/array/bug67693.phpt | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 1a29afa6dc..b2e9a6f284 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1985,7 +1985,7 @@ static void _phpi_pop(INTERNAL_FUNCTION_PARAMETERS, int off_the_end) if (should_rehash) { zend_hash_rehash(Z_ARRVAL_P(stack)); } - } else if (!key_len && index >= Z_ARRVAL_P(stack)->nNextFreeElement - 1) { + } else if (!key_len && Z_ARRVAL_P(stack)->nNextFreeElement > 0 && index >= Z_ARRVAL_P(stack)->nNextFreeElement - 1) { Z_ARRVAL_P(stack)->nNextFreeElement = Z_ARRVAL_P(stack)->nNextFreeElement - 1; } diff --git a/ext/standard/tests/array/bug67693.phpt b/ext/standard/tests/array/bug67693.phpt new file mode 100644 index 0000000000..516436c511 --- /dev/null +++ b/ext/standard/tests/array/bug67693.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #67693 - incorrect push to empty array +--FILE-- +<?php + +$array = array(-1 => 0); + +array_pop($array); + +array_push($array, 0); +array_push($array, 0); + +var_dump($array); + +echo"\nDone"; +?> +--EXPECT-- +array(2) { + [0]=> + int(0) + [1]=> + int(0) +} + +Done |