php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #75223 PCRE JIT broken in 7.2
Submitted: 2017-09-18 11:58 UTC Modified: 2017-09-18 20:42 UTC
From: giovanni at giacobbi dot net Assigned: cmb (profile)
Status: Closed Package: PCRE related
PHP Version: 7.2.0RC2 OS: Linux CentOS 7.4.1708
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: giovanni at giacobbi dot net
New email:
PHP Version: OS:

 

 [2017-09-18 11:58 UTC] giovanni at giacobbi dot net
Description:
------------
There is a problem in preg_match() when JIT is enabled and when running through Apache2 with event MPM. This problem does not occur with command line invocation.

Here are the versions I tested, same environment:
7.1.9  works with PCRE JIT enabled
7.2.0alpha1   broken
7.2.0rc2  broken

Build command line:
./configure \
  --with-apxs2=/usr/local/apache2/bin/apxs \
  --disable-cgi \
  --enable-intl \
  --with-layout=GNU \
  --enable-maintainer-zts \
  --with-gettext=static \
  --with-iconv \
  --with-mysqli=mysqlnd \
  --enable-exif \
  --with-openssl \
  --with-curl


Test script:
---------------
var_dump(preg_match('/^a/', "a"));
var_dump(preg_match('/a/', "a"));


Expected result:
----------------
int(1)
int(1)

Actual result:
--------------
int(0)
segmentation fault

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-09-18 12:14 UTC] danack@php.net
Please provide a backtrace.
 [2017-09-18 13:45 UTC] remi@php.net
Sorry, I cannot reproduce.

$ php72 -n -i | grep PCRE
PCRE (Perl Compatible Regular Expressions) Support => enabled
PCRE Library Version => 8.41 2017-07-05
PCRE JIT Support => enabled

$ php72 -n  foo.php 
int(1)
int(1)
 [2017-09-18 14:05 UTC] levim@php.net
Remi, just to be sure: did you test it with Apache2 with event MPM? According to the reporter it does not occur with the command line, only with the Apache2 with event MPM SAPI.
 [2017-09-18 14:53 UTC] cmb@php.net
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2017-09-18 14:53 UTC] cmb@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php for *NIX and
http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32

Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.
 [2017-09-18 18:36 UTC] giovanni at giacobbi dot net
-Status: Feedback +Status: Closed
 [2017-09-18 18:36 UTC] giovanni at giacobbi dot net
I can confirm that the following fixes the issue:
https://github.com/php/php-src/commit/5ef10d08ec2d0823fb21ad189dacfb43d900a0b5
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 11:01:29 2024 UTC