Bug #73769 [Opn->Fbk]: Segfault in preg_match_all
| From: | cmb@php.net | Date: | Fri, 28 Feb 2020 16:47:54 +0000 |
| Subject: | Bug #73769 [Opn->Fbk]: Segfault in preg_match_all | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-225798@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=73769&edit=1
ID: 73769
Updated by: cmb@php.net
Reported by: mozer624 at gmail dot com
Summary: Segfault in preg_match_all
-Status: Open
+Status: Feedback
Type: Bug
Package: *Regular Expressions
Operating System: macOS 10.12
PHP Version: 5.6.29
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
I cannot reproduce the segfault with PHP 7.3. Can you reproduce
it with any of the actively supported versions[1]? If so, please
provide the version of libpcre (PCRE_VERSION), and also a
backtrace[2].
[1] <https://www.php.net/supported-versions.php>
[2] <http://bugs.php.net/bugs-generating-backtrace.php>
Previous Comments:
------------------------------------------------------------------------
[2016-12-17 02:28:55] mozer624 at gmail dot com
Description:
------------
preg_match_all causes a
Segmentation fault: 11.
Test script:
---------------
<?php
$pattern = "/^(?P<file>.+?):(?P<line>.+?):(?P<char>.+?):
(?P<severity>warning|error): (?P<message>.*)
\[(?P<name>.+?)?\]\n(original=\[\[(?P<original>(.|\n)*?)\]\]\nreplacement=\[\[(?P<replacement>(.|\n)*?)\]\])?/m";
$output = <<<EOT
x/x/x.m:520:-8549: error: Using arrayWithObjects:, use @[] instead [Array_With_Objects]
original=[[[NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(1.02, 0.542)],
[NSValue valueWithCGPoint:CGPointMake(1.73, 0.71)],
[NSValue valueWithCGPoint:CGPointMake(2.44, 0.708)],
[NSValue valueWithCGPoint:CGPointMake(3.24, 0.808)],
[NSValue valueWithCGPoint:CGPointMake(3.71, 0.47)],
[NSValue valueWithCGPoint:CGPointMake(4.23, 0.514)],
[NSValue valueWithCGPoint:CGPointMake(4.8, 0.572)],
[NSValue valueWithCGPoint:CGPointMake(5.3, 0.504)],
[NSValue valueWithCGPoint:CGPointMake(6.08, 0.776)],
[NSValue valueWithCGPoint:CGPointMake(6.7, 0.616)],
[NSValue valueWithCGPoint:CGPointMake(7.23, 0.53)],
[NSValue valueWithCGPoint:CGPointMake(7.77, 0.542)],
[NSValue valueWithCGPoint:CGPointMake(8.35, 0.582)],
[NSValue valueWithCGPoint:CGPointMake(9.01, 0.656)],
[NSValue valueWithCGPoint:CGPointMake(9.66, 0.658)],
[NSValue valueWithCGPoint:CGPointMake(10.3, 0.624)],
[NSValue valueWithCGPoint:CGPointMake(11.2, 0.93)],
[NSValue valueWithCGPoint:CGPointMake(11.9, 0.65)],
[NSValue valueWithCGPoint:CGPointMake(12.4, 0.54)],
[NSValue valueWithCGPoint:CGPointMake(13.1, 0.646)],
[NSValue valueWithCGPoint:CGPointMake(13.7, 0.678)],
[NSValue valueWithCGPoint:CGPointMake(14.2, 0.464)],
[NSValue valueWithCGPoint:CGPointMake(14.8, 0.582)],
[NSValue valueWithCGPoint:CGPointMake(15.3, 0.486)],
[NSValue valueWithCGPoint:CGPointMake(15.7, 0.446)],
[NSValue valueWithCGPoint:CGPointMake(16.4, 0.656)],
[NSValue valueWithCGPoint:CGPointMake(16.8, 0.472)],
[NSValue valueWithCGPoint:CGPointMake(17.5, 0.634)],
[NSValue valueWithCGPoint:CGPointMake(18.0, 0.524)],
[NSValue valueWithCGPoint:CGPointMake(18.7, 0.742)],
[NSValue valueWithCGPoint:CGPointMake(19.4, 0.682)],
[NSValue valueWithCGPoint:CGPointMake(19.9, 0.498)],
[NSValue valueWithCGPoint:CGPointMake(20.4, 0.528)],
[NSValue valueWithCGPoint:CGPointMake(21.2, 0.776)],
[NSValue valueWithCGPoint:CGPointMake(21.7, 0.51)],
[NSValue valueWithCGPoint:CGPointMake(22.2, 0.464)],
[NSValue valueWithCGPoint:CGPointMake(22.7, 0.524)],
[NSValue valueWithCGPoint:CGPointMake(23.3, 0.592)],
[NSValue valueWithCGPoint:CGPointMake(23.8, 0.536)],
[NSValue valueWithCGPoint:CGPointMake(24.4, 0.558)],
[NSValue valueWithCGPoint:CGPointMake(25.2, 0.838)],
[NSValue valueWithCGPoint:CGPointMake(25.8, 0.556)],
[NSValue valueWithCGPoint:CGPointMake(26.4, 0.55)],
[NSValue valueWithCGPoint:CGPointMake(27.0, 0.672)],
[NSValue valueWithCGPoint:CGPointMake(27.8, 0.766)],
[NSValue valueWithCGPoint:CGPointMake(28.4, 0.652)],
[NSValue valueWithCGPoint:CGPointMake(29.1, 0.61)],
[NSValue valueWithCGPoint:CGPointMake(30.2, 1.19)],
[NSValue valueWithCGPoint:CGPointMake(30.8, 0.598)],
[NSValue valueWithCGPoint:CGPointMake(31.5, 0.696)],
[NSValue valueWithCGPoint:CGPointMake(32.0, 0.428)],
[NSValue valueWithCGPoint:CGPointMake(32.6, 0.632)],
[NSValue valueWithCGPoint:CGPointMake(33.4, 0.766)],
[NSValue valueWithCGPoint:CGPointMake(34.2, 0.838)],
[NSValue valueWithCGPoint:CGPointMake(34.9, 0.728)],
[NSValue valueWithCGPoint:CGPointMake(35.5, 0.608)],
[NSValue valueWithCGPoint:CGPointMake(36.0, 0.44)],
[NSValue valueWithCGPoint:CGPointMake(36.8, 0.854)],
[NSValue valueWithCGPoint:CGPointMake(37.3, 0.476)],
[NSValue valueWithCGPoint:CGPointMake(38.0, 0.686)],
[NSValue valueWithCGPoint:CGPointMake(38.5, 0.482)],
[NSValue valueWithCGPoint:CGPointMake(39.0, 0.574)],
[NSValue valueWithCGPoint:CGPointMake(39.7, 0.664)],
[NSValue valueWithCGPoint:CGPointMake(40.2, 0.504)],
[NSValue valueWithCGPoint:CGPointMake(41.1, 0.878)],
[NSValue valueWithCGPoint:CGPointMake(41.6, 0.552)],
[NSValue valueWithCGPoint:CGPointMake(42.5, 0.804)],
[NSValue valueWithCGPoint:CGPointMake(43.0, 0.536)],
[NSValue valueWithCGPoint:CGPointMake(43.5, 0.486)],
[NSValue valueWithCGPoint:CGPointMake(44.1, 0.586)],
[NSValue valueWithCGPoint:CGPointMake(44.6, 0.494)],
[NSValue valueWithCGPoint:CGPointMake(45.4, 0.892)],
[NSValue valueWithCGPoint:CGPointMake(46.0, 0.532)],
[NSValue valueWithCGPoint:CGPointMake(46.5, 0.572)],
[NSValue valueWithCGPoint:CGPointMake(47.1, 0.592)],
[NSValue valueWithCGPoint:CGPointMake(47.8, 0.684)],
[NSValue valueWithCGPoint:CGPointMake(48.4, 0.58)],
[NSValue valueWithCGPoint:CGPointMake(48.9, 0.474)],
[NSValue valueWithCGPoint:CGPointMake(49.5, 0.648)],
[NSValue valueWithCGPoint:CGPointMake(50.1, 0.554)],
[NSValue valueWithCGPoint:CGPointMake(50.6, 0.476)],
[NSValue valueWithCGPoint:CGPointMake(51.2, 0.602)],
[NSValue valueWithCGPoint:CGPointMake(51.8, 0.686)],
[NSValue valueWithCGPoint:CGPointMake(52.4, 0.6)],
[NSValue valueWithCGPoint:CGPointMake(53.1, 0.632)],
[NSValue valueWithCGPoint:CGPointMake(53.6, 0.556)],
[NSValue valueWithCGPoint:CGPointMake(54.1, 0.514)],
[NSValue valueWithCGPoint:CGPointMake(54.8, 0.62)],
[NSValue valueWithCGPoint:CGPointMake(55.3, 0.58)],
[NSValue valueWithCGPoint:CGPointMake(56.0, 0.642)],
[NSValue valueWithCGPoint:CGPointMake(56.7, 0.742)],
[NSValue valueWithCGPoint:CGPointMake(57.5, 0.76)],
[NSValue valueWithCGPoint:CGPointMake(58.1, 0.57)],
[NSValue valueWithCGPoint:CGPointMake(58.5, 0.478)],
[NSValue valueWithCGPoint:CGPointMake(59.2, 0.652)],
[NSValue valueWithCGPoint:CGPointMake(59.7, 0.558)],
nil]]]
replacement=[[@[
[NSValue valueWithCGPoint:CGPointMake(1.02, 0.542)],
[NSValue valueWithCGPoint:CGPointMake(1.73, 0.71)],
[NSValue valueWithCGPoint:CGPointMake(2.44, 0.708)],
[NSValue valueWithCGPoint:CGPointMake(3.24, 0.808)],
[NSValue valueWithCGPoint:CGPointMake(3.71, 0.47)],
[NSValue valueWithCGPoint:CGPointMake(4.23, 0.514)],
[NSValue valueWithCGPoint:CGPointMake(4.8, 0.572)],
[NSValue valueWithCGPoint:CGPointMake(5.3, 0.504)],
[NSValue valueWithCGPoint:CGPointMake(6.08, 0.776)],
[NSValue valueWithCGPoint:CGPointMake(6.7, 0.616)],
[NSValue valueWithCGPoint:CGPointMake(7.23, 0.53)],
[NSValue valueWithCGPoint:CGPointMake(7.77, 0.542)],
[NSValue valueWithCGPoint:CGPointMake(8.35, 0.582)],
[NSValue valueWithCGPoint:CGPointMake(9.01, 0.656)],
[NSValue valueWithCGPoint:CGPointMake(9.66, 0.658)],
[NSValue valueWithCGPoint:CGPointMake(10.3, 0.624)],
[NSValue valueWithCGPoint:CGPointMake(11.2, 0.93)],
[NSValue valueWithCGPoint:CGPointMake(11.9, 0.65)],
[NSValue valueWithCGPoint:CGPointMake(12.4, 0.54)],
[NSValue valueWithCGPoint:CGPointMake(13.1, 0.646)],
[NSValue valueWithCGPoint:CGPointMake(13.7, 0.678)],
[NSValue valueWithCGPoint:CGPointMake(14.2, 0.464)],
[NSValue valueWithCGPoint:CGPointMake(14.8, 0.582)],
[NSValue valueWithCGPoint:CGPointMake(15.3, 0.486)],
[NSValue valueWithCGPoint:CGPointMake(15.7, 0.446)],
[NSValue valueWithCGPoint:CGPointMake(16.4, 0.656)],
[NSValue valueWithCGPoint:CGPointMake(16.8, 0.472)],
[NSValue valueWithCGPoint:CGPointMake(17.5, 0.634)],
[NSValue valueWithCGPoint:CGPointMake(18.0, 0.524)],
[NSValue valueWithCGPoint:CGPointMake(18.7, 0.742)],
[NSValue valueWithCGPoint:CGPointMake(19.4, 0.682)],
[NSValue valueWithCGPoint:CGPointMake(19.9, 0.498)],
[NSValue valueWithCGPoint:CGPointMake(20.4, 0.528)],
[NSValue valueWithCGPoint:CGPointMake(21.2, 0.776)],
[NSValue valueWithCGPoint:CGPointMake(21.7, 0.51)],
[NSValue valueWithCGPoint:CGPointMake(22.2, 0.464)],
[NSValue valueWithCGPoint:CGPointMake(22.7, 0.524)],
[NSValue valueWithCGPoint:CGPointMake(23.3, 0.592)],
[NSValue valueWithCGPoint:CGPointMake(23.8, 0.536)],
[NSValue valueWithCGPoint:CGPointMake(24.4, 0.558)],
[NSValue valueWithCGPoint:CGPointMake(25.2, 0.838)],
[NSValue valueWithCGPoint:CGPointMake(25.8, 0.556)],
[NSValue valueWithCGPoint:CGPointMake(26.4, 0.55)],
[NSValue valueWithCGPoint:CGPointMake(27.0, 0.672)],
[NSValue valueWithCGPoint:CGPointMake(27.8, 0.766)],
[NSValue valueWithCGPoint:CGPointMake(28.4, 0.652)],
[NSValue valueWithCGPoint:CGPointMake(29.1, 0.61)],
[NSValue valueWithCGPoint:CGPointMake(30.2, 1.19)],
[NSValue valueWithCGPoint:CGPointMake(30.8, 0.598)],
[NSValue valueWithCGPoint:CGPointMake(31.5, 0.696)],
[NSValue valueWithCGPoint:CGPointMake(32.0, 0.428)],
[NSValue valueWithCGPoint:CGPointMake(32.6, 0.632)],
[NSValue valueWithCGPoint:CGPointMake(33.4, 0.766)],
[NSValue valueWithCGPoint:CGPointMake(34.2, 0.838)],
[NSValue valueWithCGPoint:CGPointMake(34.9, 0.728)],
[NSValue valueWithCGPoint:CGPointMake(35.5, 0.608)],
[NSValue valueWithCGPoint:CGPointMake(36.0, 0.44)],
[NSValue valueWithCGPoint:CGPointMake(36.8, 0.854)],
[NSValue valueWithCGPoint:CGPointMake(37.3, 0.476)],
[NSValue valueWithCGPoint:CGPointMake(38.0, 0.686)],
[NSValue valueWithCGPoint:CGPointMake(38.5, 0.482)],
[NSValue valueWithCGPoint:CGPointMake(39.0, 0.574)],
[NSValue valueWithCGPoint:CGPointMake(39.7, 0.664)],
[NSValue valueWithCGPoint:CGPointMake(40.2, 0.504)],
[NSValue valueWithCGPoint:CGPointMake(41.1, 0.878)],
[NSValue valueWithCGPoint:CGPointMake(41.6, 0.552)],
[NSValue valueWithCGPoint:CGPointMake(42.5, 0.804)],
[NSValue valueWithCGPoint:CGPointMake(43.0, 0.536)],
[NSValue valueWithCGPoint:CGPointMake(43.5, 0.486)],
[NSValue valueWithCGPoint:CGPointMake(44.1, 0.586)],
[NSValue valueWithCGPoint:CGPointMake(44.6, 0.494)],
[NSValue valueWithCGPoint:CGPointMake(45.4, 0.892)],
[NSValue valueWithCGPoint:CGPointMake(46.0, 0.532)],
[NSValue valueWithCGPoint:CGPointMake(46.5, 0.572)],
[NSValue valueWithCGPoint:CGPointMake(47.1, 0.592)],
[NSValue valueWithCGPoint:CGPointMake(47.8, 0.684)],
[NSValue valueWithCGPoint:CGPointMake(48.4, 0.58)],
[NSValue valueWithCGPoint:CGPointMake(48.9, 0.474)],
[NSValue valueWithCGPoint:CGPointMake(49.5, 0.648)],
[NSValue valueWithCGPoint:CGPointMake(50.1, 0.554)],
[NSValue valueWithCGPoint:CGPointMake(50.6, 0.476)],
[NSValue valueWithCGPoint:CGPointMake(51.2, 0.602)],
[NSValue valueWithCGPoint:CGPointMake(51.8, 0.686)],
[NSValue valueWithCGPoint:CGPointMake(52.4, 0.6)],
[NSValue valueWithCGPoint:CGPointMake(53.1, 0.632)],
[NSValue valueWithCGPoint:CGPointMake(53.6, 0.556)],
[NSValue valueWithCGPoint:CGPointMake(54.1, 0.514)],
[NSValue valueWithCGPoint:CGPointMake(54.8, 0.62)],
[NSValue valueWithCGPoint:CGPointMake(55.3, 0.58)],
[NSValue valueWithCGPoint:CGPointMake(56.0, 0.642)],
[NSValue valueWithCGPoint:CGPointMake(56.7, 0.742)],
[NSValue valueWithCGPoint:CGPointMake(57.5, 0.76)],
[NSValue valueWithCGPoint:CGPointMake(58.1, 0.57)],
[NSValue valueWithCGPoint:CGPointMake(58.5, 0.478)],
[NSValue valueWithCGPoint:CGPointMake(59.2, 0.652)],
[NSValue valueWithCGPoint:CGPointMake(59.7, 0.558)]]]]
EOT;
$matches = null;
var_dump(preg_match_all($pattern, $output, $matches, PREG_SET_ORDER));
var_dump($matches);
?>
Expected result:
----------------
No seg fault and actually a match with the regex.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=73769&edit=1