php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #80194 Assertion failure during block assembly of unreachable free with leading nop
Submitted: 2020-10-07 08:39 UTC Modified: 2020-10-07 13:02 UTC
From: sjon@php.net Assigned: nikic (profile)
Status: Closed Package: opcache
PHP Version: 7.4 OS: archLinux
Private report: No CVE-ID: None
 [2020-10-07 08:39 UTC] sjon@php.net
Description:
------------
probably somewhat related to #80046

ext/opcache/Optimizer/block_pass.c:973: assemble_code_blocks: Assertion `op_array->opcodes[b->start].opcode == 70 || op_array->opcodes[b->start].opcode == 127' failed.

print op_array->opcodes[b->start].opcode
$1 = 0 '\000'

Test script:
---------------
<?php
class p
{
    public function u()
    {
        switch ($this->z)
        {
            default:
                throw new Exception;
            case 'mysql':
                return new Xxx($this);
                break;
        }
    }
}



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2020-10-07 12:48 UTC] nikic@php.net
-Status: Open +Status: Verified -PHP Version: 8.0.0rc1 +PHP Version: 7.4
 [2020-10-07 12:48 UTC] nikic@php.net
This also reproduces on PHP 7.4.
 [2020-10-07 13:02 UTC] nikic@php.net
-Summary: ext/opcache/Optimizer/block_pass.c:973: assemble_code_blocks: Assertion..failed +Summary: Assertion failure during block assembly of unreachable free with leading nop -Assigned To: +Assigned To: nikic
 [2020-10-07 13:04 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=683c988493920e033f0c7f5455ebfc3825c38887
Log: Fixed bug #80194
 [2020-10-07 13:04 UTC] nikic@php.net
-Status: Verified +Status: Closed
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Mon Nov 23 20:01:23 2020 UTC