summaryrefslogtreecommitdiff
path: root/ext/pcre/tests/bug79241.phpt
blob: f6dbb8bea4e9090a0458eb57cca6631c1a6d5c94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--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)