From 3d45dd58b87b847271bdf483f7ead1db5465f86d Mon Sep 17 00:00:00 2001 From: Andrey Hristov Date: Wed, 9 Jun 1999 21:13:05 +0000 Subject: [PATCH] Fixed a bug in preg_split. Fixed a bug in array_shift/array_pop. --- ext/pcre/pcre.c | 6 +++--- ext/standard/basic_functions.c | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ext/pcre/pcre.c b/ext/pcre/pcre.c index eb91b954a1..39662be2ec 100644 --- a/ext/pcre/pcre.c +++ b/ext/pcre/pcre.c @@ -829,9 +829,9 @@ PHP_FUNCTION(preg_split) limit_val--; } else { /* if no match */ - /* Add the last piece to the return value, if there - were matches before */ - if (piece > subject->value.str.val) + /* Add the last piece to the return value, if there is + something left */ + if (limit != 0) add_next_index_stringl(return_value, piece, subject_end-piece, 1); diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index e37fcbc741..43bc22b0c3 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -2583,7 +2583,11 @@ static void _phpi_pop(INTERNAL_FUNCTION_PARAMETERS, int off_the_end) zend_error(E_WARNING, "The argument needs to be an array"); return; } - + + if (zend_hash_num_elements(stack->value.ht) == 0) { + return; + } + /* Get the first or last value and copy it into the return value */ if (off_the_end) zend_hash_internal_pointer_end(stack->value.ht); -- 2.40.0