mirror of
https://github.com/php/php-src.git
synced 2026-04-25 17:08:14 +02:00
Merge branch 'PHP-7.4'
This commit is contained in:
+7
-1
@@ -2500,7 +2500,8 @@ PHPAPI void php_pcre_split_impl(pcre_cache_entry *pce, zend_string *subject_str,
|
||||
match_data = pcre2_match_data_create_from_pattern(pce->re, gctx);
|
||||
if (!match_data) {
|
||||
PCRE_G(error_code) = PHP_PCRE_INTERNAL_ERROR;
|
||||
return;
|
||||
zval_ptr_dtor(return_value);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2620,6 +2621,11 @@ error:
|
||||
pcre2_match_data_free(match_data);
|
||||
}
|
||||
|
||||
if (PCRE_G(error_code) != PHP_PCRE_NO_ERROR) {
|
||||
zval_ptr_dtor(return_value);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
last:
|
||||
start_offset = (last_match - ZSTR_VAL(subject_str)); /* the offset might have been incremented, but without further successful matches */
|
||||
|
||||
|
||||
@@ -5,8 +5,7 @@ Bug #70345 (Multiple vulnerabilities related to PCRE functions)
|
||||
$regex = '/(?=xyz\K)/';
|
||||
$subject = "aaaaxyzaaaa";
|
||||
|
||||
$v = preg_split($regex, $subject);
|
||||
print_r($v);
|
||||
var_dump(preg_split($regex, $subject));
|
||||
|
||||
$regex = '/(a(?=xyz\K))/';
|
||||
$subject = "aaaaxyzaaaa";
|
||||
@@ -14,10 +13,7 @@ preg_match($regex, $subject, $matches);
|
||||
|
||||
var_dump($matches);
|
||||
--EXPECTF--
|
||||
Array
|
||||
(
|
||||
[0] => aaaaxyzaaaa
|
||||
)
|
||||
bool(false)
|
||||
|
||||
Warning: preg_match(): Get subpatterns list failed in %s on line %d
|
||||
array(0) {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
--TEST--
|
||||
Bug #76127: preg_split does not raise an error on invalid UTF-8
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump(preg_split("/a/u", "a\xff"));
|
||||
var_dump(preg_last_error() == PREG_BAD_UTF8_ERROR);
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
bool(true)
|
||||
@@ -306,8 +306,5 @@ array(6) {
|
||||
}
|
||||
}
|
||||
bool(true)
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(6) "ab2c3u"
|
||||
}
|
||||
bool(false)
|
||||
bool(true)
|
||||
|
||||
Reference in New Issue
Block a user