34 lines
773 B
Plaintext
34 lines
773 B
Plaintext
|
|
--TEST--
|
|||
|
|
Bug #79241: Segmentation fault on preg_match()
|
|||
|
|
--FILE--
|
|||
|
|
<?php
|
|||
|
|
|
|||
|
|
// if "’" string is used directly without json_decode,
|
|||
|
|
// the issue does not reproduce
|
|||
|
|
$text = json_decode('"’"');
|
|||
|
|
|
|||
|
|
$pattern = '/\b/u';
|
|||
|
|
|
|||
|
|
// it has to be exact two calls to preg_match(),
|
|||
|
|
// with the second call offsetting after the tick symbol
|
|||
|
|
var_dump(preg_match($pattern, $text, $matches, 0, 0));
|
|||
|
|
var_dump(preg_match($pattern, $text, $matches, 0, 1));
|
|||
|
|
var_dump(preg_last_error() == PREG_BAD_UTF8_OFFSET_ERROR);
|
|||
|
|
|
|||
|
|
echo "\n";
|
|||
|
|
|
|||
|
|
$text = "VA\xff"; $text .= "LID";
|
|||
|
|
var_dump(preg_match($pattern, $text, $matches, 0, 4));
|
|||
|
|
var_dump(preg_match($pattern, $text, $matches, 0, 0));
|
|||
|
|
var_dump(preg_last_error() == PREG_BAD_UTF8_ERROR);
|
|||
|
|
|
|||
|
|
?>
|
|||
|
|
--EXPECT--
|
|||
|
|
int(0)
|
|||
|
|
bool(false)
|
|||
|
|
bool(true)
|
|||
|
|
|
|||
|
|
int(1)
|
|||
|
|
bool(false)
|
|||
|
|
bool(true)
|