php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #78791 zend_mm_heap corrupted on ZTS builds
Submitted: 2019-11-07 10:56 UTC Modified: 2019-11-07 12:22 UTC
From: maroszek at gmx dot net Assigned:
Status: Closed Package: Reproducible crash
PHP Version: 7.4.0RC5 OS: Linux
Private report: No CVE-ID: None
 [2019-11-07 10:56 UTC] maroszek at gmx dot net
Description:
------------
Hi,

there seems to be a regression from PHP 7.3.x to 7.4.x. (Those nasty ZTS bugs that were fixed in PHP 7.2 seem to be back :))

Please use my simple ZTS application:
https://gist.github.com/paresy/3cbd4c6a469511ac7479aa0e7c42fea7

Compile:
g++ php.cpp -Imain -ITSRM -IZend -I. --std=c++11 -Llibs -lphp7 -lresolv -ldl -pthread

I used a minimal PHP build: ./configure '--disable-fpm' '--disable-cgi' '--disable-cli' '--enable-embed=static' '--enable-maintainer-zts' '--disable-all'



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

//Leave it empty.

Expected result:
----------------
FINISHED (multiple times)

Actual result:
--------------
��������������������������������zend_mm_heap corrupted


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2019-11-07 11:00 UTC] maroszek at gmx dot net
USE_ZEND_ALLOC=0 valgrind --leak-check=full --log-file=valgrind.txt ./a.out 

Output:
==80960== Memcheck, a memory error detector
==80960== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==80960== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==80960== Command: ./a.out
==80960== Parent PID: 77724
==80960== 
==80960== Thread 37:
==80960== Conditional jump or move depends on uninitialised value(s)
==80960==    at 0x2408F7: zend_stream_fixup (zend_stream.c:120)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x531866E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==80960== 
==80960== Thread 50:
==80960== Invalid read of size 1
==80960==    at 0x1E7BF7: lex_scan (zend_language_scanner.c:8164)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be50 is 0 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E7C09: lex_scan (zend_language_scanner.c:8226)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be51 is 1 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E7C22: lex_scan (zend_language_scanner.c:8228)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be52 is 2 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E7DBC: lex_scan (zend_language_scanner.c:8265)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be53 is 3 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E7DD4: lex_scan (zend_language_scanner.c:8274)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be54 is 4 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E7DEC: lex_scan (zend_language_scanner.c:8278)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be55 is 5 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E7E18: lex_scan (zend_language_scanner.l:2021)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be55 is 5 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E7CD5: lex_scan (zend_language_scanner.c:1340)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be56 is 6 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E7ED0: lex_scan (zend_language_scanner.c:1490)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be57 is 7 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E7F50: lex_scan (zend_language_scanner.l:2890)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be56 is 6 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E8F5D: lex_scan (zend_language_scanner.c:1817)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be58 is 8 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x1E8CC3: lex_scan (zend_language_scanner.l:2149)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be59 is 9 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid free() / delete / delete[] / realloc()
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x216846: zend_llist_destroy (zend_llist.c:109)
==80960==    by 0x213785: shutdown_executor (zend_execute_API.c:265)
==80960==    by 0x2238DA: zend_deactivate (zend.c:1184)
==80960==    by 0x1C4B6F: php_request_shutdown (main.c:1925)
==80960==    by 0x1C01F7: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x656be50 is 0 bytes inside a block of size 48 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x240BA3: zend_file_handle_dtor (zend_stream.c:225)
==80960==    by 0x2167D1: zend_llist_del_element (zend_llist.c:94)
==80960==    by 0x1E660B: zend_destroy_file_handle (zend_language_scanner.l:294)
==80960==    by 0x223B17: zend_execute_scripts (zend.c:1661)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x24096D: zend_stream_fixup (zend_stream.c:153)
==80960==    by 0x1E6C0B: open_file_for_scanning (zend_language_scanner.l:521)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Thread 25:
==80960== Invalid read of size 1
==80960==    at 0x4C33F89: memchr (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1E987A: lex_scan (zend_language_scanner.l:2058)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x21343651 is 609 bytes inside a block of size 40,960 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1C4C54: php_request_shutdown (main.c:1946)
==80960==    by 0x1C01F7: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x531866E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==80960==    by 0x5BA16DA: start_thread (pthread_create.c:463)
==80960==    by 0x5EDA88E: clone (clone.S:95)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x2305A3: zend_hash_real_init_mixed_ex (zend_hash.c:191)
==80960==    by 0x2305A3: zend_hash_real_init_mixed (zend_hash.c:312)
==80960==    by 0x231AA8: _zend_hash_add_or_update_i (zend_hash.c:713)
==80960==    by 0x231AA8: zend_hash_add_new (zend_hash.c:889)
==80960==    by 0x24E367: zend_add_interned_string (zend_string.c:174)
==80960==    by 0x24E367: zend_new_interned_string_request (zend_string.c:249)
==80960==    by 0x1FEE84: zend_set_compiled_filename (zend_compile.c:409)
==80960==    by 0x1E6CCA: open_file_for_scanning (zend_language_scanner.l:576)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 1
==80960==    at 0x4C33FA7: memchr (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1E987A: lex_scan (zend_language_scanner.l:2058)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==  Address 0x21343652 is 610 bytes inside a block of size 40,960 free'd
==80960==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1C4C54: php_request_shutdown (main.c:1946)
==80960==    by 0x1C01F7: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lambda()#1}>::type std::__invoke<main::{lambda()#1}>(std::__invoke_result&&, (main::{lambda()#1}&&)...) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0E35: decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DF1: std::thread::_Invoker<std::tuple<main::{lambda()#1}> >::operator()() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0DC1: std::thread::_State_impl<std::thread::_Invoker<std::tuple<main::{lambda()#1}> > >::_M_run() (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x531866E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==80960==    by 0x5BA16DA: start_thread (pthread_create.c:463)
==80960==    by 0x5EDA88E: clone (clone.S:95)
==80960==  Block was alloc'd at
==80960==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1F6E28: __zend_malloc (zend_alloc.c:2975)
==80960==    by 0x2305A3: zend_hash_real_init_mixed_ex (zend_hash.c:191)
==80960==    by 0x2305A3: zend_hash_real_init_mixed (zend_hash.c:312)
==80960==    by 0x231AA8: _zend_hash_add_or_update_i (zend_hash.c:713)
==80960==    by 0x231AA8: zend_hash_add_new (zend_hash.c:889)
==80960==    by 0x24E367: zend_add_interned_string (zend_string.c:174)
==80960==    by 0x24E367: zend_new_interned_string_request (zend_string.c:249)
==80960==    by 0x1FEE84: zend_set_compiled_filename (zend_compile.c:409)
==80960==    by 0x1E6CCA: open_file_for_scanning (zend_language_scanner.l:576)
==80960==    by 0x1E6F76: compile_file (zend_language_scanner.l:640)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960== 
==80960== Invalid read of size 8
==80960==    at 0x4C367E0: memmove (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==80960==    by 0x1EB697: memcpy (string_fortified.h:34)
==80960==    by 0x1EB697: zend_string_init (zend_string.h:157)
==80960==    by 0x1EB697: lex_scan (zend_language_scanner.l:2096)
==80960==    by 0x200DC4: zendlex (zend_compile.c:1613)
==80960==    by 0x3B543D: zendparse (zend_language_parser.c:4055)
==80960==    by 0x1E5763: zend_compile (zend_language_scanner.l:595)
==80960==    by 0x1E6FC9: compile_file (zend_language_scanner.l:648)
==80960==    by 0x223AE7: zend_execute_scripts (zend.c:1657)
==80960==    by 0x1C610F: php_execute_script (main.c:2619)
==80960==    by 0x1C01E3: main::{lambda()#1}::operator()() const (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C0BCA: void std::__invoke_impl<void, main::{lambda()#1}>(std::__invoke_other, main::{lambda()#1}&&) (in /home/symcon/php-leak/php-7.4.0RC5/a.out)
==80960==    by 0x1C09E5: std::__invoke_result<main::{lam
 [2019-11-07 11:33 UTC] nikic@php.net
-Status: Open +Status: Feedback
 [2019-11-07 11:33 UTC] nikic@php.net
You are missing initialization of file_handle.buf. Does the problem persist if you fix that?

You can also use zend_stream_init_filename() to handle the initialization more reliably.
 [2019-11-07 11:50 UTC] nikic@php.net
After fixing that it works ... but there's still this valgrind warning during shutdown:

==13395== Invalid read of size 8
==13395==    at 0x53F246B: realpath_cache_clean (zend_virtual_cwd.c:344)
==13395==    by 0x53F1F7E: cwd_globals_dtor (zend_virtual_cwd.c:153)
==13395==    by 0x52E5B90: tsrm_shutdown (TSRM.c:215)
==13395==    by 0x5492132: php_embed_shutdown (php_embed.c:227)
==13395==    by 0x1098CF: main (in /home/nikic/php-7.4-zts/a.out)
==13395==  Address 0x9eacfc8 is 4,520 bytes inside a block of size 15,312 free'd
==13395==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==13395==    by 0x52E5C05: tsrm_shutdown (TSRM.c:223)
==13395==    by 0x5492132: php_embed_shutdown (php_embed.c:227)
==13395==    by 0x1098CF: main (in /home/nikic/php-7.4-zts/a.out)
==13395==  Block was alloc'd at
==13395==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==13395==    by 0x52E6361: allocate_new_resource (TSRM.c:396)
==13395==    by 0x52E66C6: ts_resource_ex (TSRM.c:470)
==13395==    by 0x52EF0B8: php_tsrm_startup (main.c:2790)
==13395==    by 0x5491E8F: php_embed_init (php_embed.c:172)
==13395==    by 0x1096FF: main (in /home/nikic/php-7.4-zts/a.out)

Possibly it's trying to destroy the realpath cache of the wrong thread?
 [2019-11-07 11:50 UTC] maroszek at gmx dot net
-Status: Feedback +Status: Closed
 [2019-11-07 11:50 UTC] maroszek at gmx dot net
Sorry for bothering you. This fixes the issue. I also updated my gist.
 [2019-11-07 12:22 UTC] maroszek at gmx dot net
Yes, those real path leaks remain. I have a separate issue open here: https://bugs.php.net/bug.php?id=78698

I would be glad if you could have a look at it.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Mar 29 01:01:28 2024 UTC