php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #77215 CFG assertion failure on multiple finalizing switch frees in one block
Submitted: 2018-11-28 17:28 UTC Modified: 2018-11-28 19:05 UTC
From: cyril dot velter at metadys dot com Assigned: nikic (profile)
Status: Closed Package: opcache
PHP Version: 7.2.12 OS: CentOS Linux release 7.5.1804 (C
Private report: No CVE-ID: None
 [2018-11-28 17:28 UTC] cyril dot velter at metadys dot com
Description:
------------
custom build of php 7.2.12

./configure --prefix=/usr/local/php --enable-cli --enable-fpm --with-fpm-systemd --with-pgsql=/usr/pgsql-9.6 --with-pdo-pgsql=/usr/pgsql-9.6 --enable-mbstring --with-zlib --with-openssl=/usr/local/openssl --with-gd --with-ldap --with-curl --with-gettext --with-gmp --with-kerberos --enable-pcntl --enable-sysvsem --enable-sysvshm --enable-zip --enable-intl --enable-ftp --with-bz2 --enable-opcache --with-mysqli=shared --with-pdo-mysql=shared --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --enable-debug

php.ini :
zend_extension=opcache.so

running the following script with php-fpm lead to a SIGABORT :

[pool default] child 8749 said into stderr: "t: /home/build/build/php-7.2.12/ext/opcache/Optimizer/zend_cfg.c:156: zend_mark_reachable_blocks: Assertion `b->start == live_range->end' failed."


Test script:
---------------
<?php

function _crash($eValeur) {
        switch ($eValeur["a"]) {
                default:
                        switch($eValeur["a"]) {
                                default:
                                        return 2;
                        }
        }
}






Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-11-28 18:20 UTC] nikic@php.net
-Status: Open +Status: Verified
 [2018-11-28 18:20 UTC] nikic@php.net
I think that assertion is just wrong.
 [2018-11-28 19:05 UTC] nikic@php.net
-Summary: PHP-FPM exited on signal 6 (SIGABRT) +Summary: CFG assertion failure on multiple finalizing switch frees in one block -Status: Verified +Status: Assigned -Assigned To: +Assigned To: nikic
 [2018-11-28 19:10 UTC] nikic@php.net
Automatic comment on behalf of nikita.ppv@gmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=17f8b9fb365600408f512e8d9038e38771a768e5
Log: Fixed bug #77215
 [2018-11-28 19:10 UTC] nikic@php.net
-Status: Assigned +Status: Closed
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Thu Jan 17 18:01:31 2019 UTC