php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #68949 Very strange binary dump and class not found
Submitted: 2015-01-29 17:52 UTC Modified: 2016-06-20 15:17 UTC
From: yunosh@php.net Assigned: cmb (profile)
Status: Closed Package: Scripting Engine problem
PHP Version: master-Git-2015-01-29 (Git) OS: Linux
Private report: No CVE-ID: None
 [2015-01-29 17:52 UTC] yunosh@php.net
Description:
------------
This is somewhat hard to describe, but I can reproduce this running the test script below from inside this directory: https://github.com/horde/horde/tree/master/framework/Auth/test/Horde/Auth
You probably only need Autoload.php, TestCase.php, and one of the *Test.php files. It happens for any of those.
opcode cache is disabled.

Test script:
---------------
require "Autoload.php";
require "Unit/PasswdTest.php";

Actual result:
--------------
㼼桰⨯ਪ⨠䈠獡⁥潦⁲整瑳湩⹧ ਪ⨠䌠灯特杩瑨㈠㄰ⴰ〲㔱䠠牯敤䰠䍌⠠瑨灴⼺眯睷栮牯敤漮杲⤯ ਪ⨠匠敥琠敨攠据潬敳⁤楦敬䌠偏䥙䝎映牯氠捩湥敳椠普牯慭楴湯⠠䝌䱐⸩䤠⁦潹ੵ⨠搠摩渠瑯爠捥楥敶琠楨⁳楦敬敳⁥瑨灴⼺眯睷栮牯敤漮杲氯捩湥敳⽳杬汰ㄲਮ⨠ 捀瑡来牯⁹†潈摲੥⨠䀠慰正条⁥†䄠瑵੨⨠䀠畳灢捡慫敧唠楮呴獥獴 慀瑵潨⁲††畇湮牡圠潲敢眼潲敢䁬慰摲獵搮㹥 汀捩湥敳††瑨灴⼺眯睷栮牯敤漮杲氯捩湥敳⽳杬汰ㄲ䰠假⨠䀠楬歮†††栠瑴㩰⼯数牡栮牯敤漮杲椯摮硥瀮灨瀿捡慫敧䄽瑵੨⨠ਯ汣獡⁳潈摲彥畁桴呟獥䍴獡⁥硥整摮⁳潈摲彥敔瑳䍟獡੥੻††異汢捩映湵瑣潩敧䍴敲敤瑮慩獬⤨ †笠 †††爠瑥牵牡慲⡹ †††††愠牲祡✨灡浲㕤Ⱗ✠愤牰␱ㄱ䉃䭢偘䄤癶䝍橂㡲戱⽃华婍硉䝲✮ㄧ䌱扂塋❐Ⱙ †††††愠牲祡✨牣灹❴㠧㍥坉瑳浊浳獸Ⱗ✠攸⤧ਬ††††††牡慲⡹挧祲瑰戭潬晷獩❨␧氲剘硲剙㍒㘹Ⱗ✠㈤塬牒奸剒㤳✶Ⱙ †††††愠牲祡✨牣灹⵴敤❳㐧䴵扩㙗䜯堳奅Ⱗ✠㔴⤧ਬ††††††牡慲⡹挧祲瑰洭㕤Ⱗ✠ㄤ㔤㜳㍡ち⑥坃䱹䩖兤晋扸偋療䔯穦ねⰧ✠ㄤ㔤㜳㍡ち⑥⤧ਬ††††††牡慲⡹洧㕤戭獡㙥✴伧橆䤲䍪偳䙊䵦硁六䱸假㵷✽✧Ⱙ †††††愠牲祡✨摭ⴵ敨❸㌧㔸昸㈶㌲愰㍣㥣㔱㍦〰㙣㐶ㄳ挲㌶❦✧Ⱙ †††††愠牲祡✨獭摡Ⱗ✠"foobar"Ⱗ✠⤧ਬ††††††牡慲⡹洧獹汱Ⱗ✠㤪㕂〰㐳䈳㕃䔲㤲ㄱ㜱䔲㕂䄲㕅䙃㠴㜴〶䌴䔶✵✧Ⱙ †††††愠牲祡✨汰楡❮昧潯慢❲✧Ⱙ †††††愠牲祡✨桳❡椧偅⭘兓䥗㍒㙰氷⽪稰杩坓䭔杈✽✧Ⱙ †††††愠牲祡✨浳㕤Ⱗ✠卉乃睊睺㍐䌰摡桡灪扫㉌㙬䡢硊㉤㉨Ⱗ✠穩牬睱癨⤧ਬ††††††牡慲⡹猧摭✵笧䵓㕄䥽䍓䩎穷偷〳慃慤橨歰䱢氲戶䩈摸栲✲椧決煲桷❶牴敵Ⱙ †††††愠牲祡✨浳㕤Ⱗ✠湢䔳婮吰捆礫硹䬳瑯危䜵祬浤㵍Ⱗ✠物捶⤧ਬ††††††牡慲⡹猧摭✵䜧㑚坋歋圲收体橈塖桌住䅺畄䅷✽〧묃✀Ⱙ †††††愠牲祡✨浳㕤Ⱗ✠礶渲䌫䍇桚䉵㈳祤畆欳入奴嘰㵣Ⱗ✠堋埑⤧ਬ††††††牡慲⡹猧桳❡戧兵兲瘹穡牪瑈㙏䥯卦桚䉓噪摸敪婭婶噈扵㵧✽挧智摯湵❮Ⱙ †††††愠牲祡✨獳慨Ⱗ✠䱂浄硰奈䡔⼲浂㑧敶晖杢啬㠶兪䕋䭵Ⱗ✠⣐詋⤧ਬ††††††牡慲⡹猧桳❡㈧塩㡲爳慐䱢浸硲男汵㑔㝗䩭牆睡㑔✱㻁✵Ⱙ †††††愠牲祡✨獳慨Ⱗ✠卻䡓絁䤶佥潣獬㔸䡤敊䡔癥㍁㘵畲瑦䅲倲塒Ⱗ∠硜ぃ硜㡄硜㑆≗牴敵Ⱙ †††††愠牲祡✨獳慨Ⱗ✠䤶佥潣獬㔸䡤敊䡔癥㍁㘵畲瑦䅲倲塒Ⱗ∠硜ぃ硜㡄硜㑆≗Ⱙ †††††愠牲祡✨獳慨㔲✶笧卓䅈㔲紶湷㥄䉇⭯䥗婘戫䑖䐷潪潄八橂噫瑧晵祘桂䔱晱湘ㄱ猫䝕Ⱗ∠屵䙸屁䍸尵へ∶牴敵Ⱙ †††††愠牲祡✨獳慨㔲✶眧䑮䜹潂圫塉⭚噢㝄橄䑯歯䉑歪杖畴塦䉹ㅨ煅塦ㅮ⬱啳❇產硜䅆硜㕃硜㘰⤢ਬ††††㬩 †素紊
Fatal error: Class 'Horde_Auth_TestCase' not found in /home/vagrant/horde/framework/Auth/test/Horde/Auth/Unit/PasswdTest.php on line 18


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2015-01-30 02:47 UTC] laruence@php.net
run with valgrind... to see whether is something useful output..

like: USE_ZEND_ALLOC=0 valgrind php script.php
 [2015-01-30 09:19 UTC] yunosh@php.net
$ USE_ZEND_ALLOC=0 valgrind php -r 'require "Autoload.php"; require "Unit/PasswdTest.php";'
==3899== Memcheck, a memory error detector
==3899== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==3899== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==3899== Command: php -r require\ "Autoload.php";\ require\ "Unit/PasswdTest.php";
==3899== 
㼼桰⨯ਪ⨠䈠獡⁥潦⁲整瑳湩⹧ ਪ⨠䌠灯特杩瑨㈠㄰ⴰ〲㔱䠠牯敤䰠䍌⠠瑨灴⼺眯睷栮牯敤漮杲⤯ ਪ⨠匠敥琠敨攠据潬敳⁤楦敬䌠偏䥙䝎映牯氠捩湥敳椠普牯慭楴湯⠠䝌䱐⸩䤠⁦潹ੵ⨠搠摩渠瑯爠捥楥敶琠楨⁳楦敬敳⁥瑨灴⼺眯睷栮牯敤漮杲氯捩湥敳⽳杬汰ㄲਮ⨠ 捀瑡来牯⁹†潈摲੥⨠䀠慰正条⁥†䄠瑵੨⨠䀠畳灢捡慫敧唠楮呴獥獴 慀瑵潨⁲††畇湮牡圠潲敢眼潲敢䁬慰摲獵搮㹥 汀捩湥敳††瑨灴⼺眯睷栮牯敤漮杲氯捩湥敳⽳杬汰ㄲ䰠假⨠䀠楬歮†††栠瑴㩰⼯数牡栮牯敤漮杲椯摮硥瀮灨瀿捡慫敧䄽瑵੨⨠ਯ汣獡⁳潈摲彥畁桴呟獥䍴獡⁥硥整摮⁳潈摲彥敔瑳䍟獡੥੻††異汢捩映湵瑣潩敧䍴敲敤瑮慩獬⤨ †笠 †††爠瑥牵牡慲⡹ †††††愠牲祡✨灡浲㕤Ⱗ✠愤牰␱ㄱ䉃䭢偘䄤癶䝍橂㡲戱⽃华婍硉䝲✮ㄧ䌱扂塋❐Ⱙ †††††愠牲祡✨牣灹❴㠧㍥坉瑳浊浳獸Ⱗ✠攸⤧ਬ††††††牡慲⡹挧祲瑰戭潬晷獩❨␧氲剘硲剙㍒㘹Ⱗ✠㈤塬牒奸剒㤳✶Ⱙ †††††愠牲祡✨牣灹⵴敤❳㐧䴵扩㙗䜯堳奅Ⱗ✠㔴⤧ਬ††††††牡慲⡹挧祲瑰洭㕤Ⱗ✠ㄤ㔤㜳㍡ち⑥坃䱹䩖兤晋扸偋療䔯穦ねⰧ✠ㄤ㔤㜳㍡ち⑥⤧ਬ††††††牡慲⡹洧㕤戭獡㙥✴伧橆䤲䍪偳䙊䵦硁六䱸假㵷✽✧Ⱙ †††††愠牲祡✨摭ⴵ敨❸㌧㔸昸㈶㌲愰㍣㥣㔱㍦〰㙣㐶ㄳ挲㌶❦✧Ⱙ †††††愠牲祡✨獭摡Ⱗ✠"foobar"Ⱗ✠⤧ਬ††††††牡慲⡹洧獹汱Ⱗ✠㤪㕂〰㐳䈳㕃䔲㤲ㄱ㜱䔲㕂䄲㕅䙃㠴㜴〶䌴䔶✵✧Ⱙ †††††愠牲祡✨汰楡❮昧潯慢❲✧Ⱙ †††††愠牲祡✨桳❡椧偅⭘兓䥗㍒㙰氷⽪稰杩坓䭔杈✽✧Ⱙ †††††愠牲祡✨浳㕤Ⱗ✠卉乃睊睺㍐䌰摡桡灪扫㉌㙬䡢硊㉤㉨Ⱗ✠穩牬睱癨⤧ਬ††††††牡慲⡹猧摭✵笧䵓㕄䥽䍓䩎穷偷〳慃慤橨歰䱢氲戶䩈摸栲✲椧決煲桷❶牴敵Ⱙ †††††愠牲祡✨浳㕤Ⱗ✠湢䔳婮吰捆礫硹䬳瑯危䜵祬浤㵍Ⱗ✠物捶⤧ਬ††††††牡慲⡹猧摭✵䜧㑚坋歋圲收体橈塖桌住䅺畄䅷✽〧묃✀Ⱙ †††††愠牲祡✨浳㕤Ⱗ✠礶渲䌫䍇桚䉵㈳祤畆欳入奴嘰㵣Ⱗ✠堋埑⤧ਬ††††††牡慲⡹猧桳❡戧兵兲瘹穡牪瑈㙏䥯卦桚䉓噪摸敪婭婶噈扵㵧✽挧智摯湵❮Ⱙ †††††愠牲祡✨獳慨Ⱗ✠䱂浄硰奈䡔⼲浂㑧敶晖杢啬㠶兪䕋䭵Ⱗ✠⣐詋⤧ਬ††††††牡慲⡹猧桳❡㈧塩㡲爳慐䱢浸硲男汵㑔㝗䩭牆睡㑔✱㻁✵Ⱙ †††††愠牲祡✨獳慨Ⱗ✠卻䡓絁䤶佥潣獬㔸䡤敊䡔癥㍁㘵畲瑦䅲倲塒Ⱗ∠硜ぃ硜㡄硜㑆≗牴敵Ⱙ †††††愠牲祡✨獳慨Ⱗ✠䤶佥潣獬㔸䡤敊䡔癥㍁㘵畲瑦䅲倲塒Ⱗ∠硜ぃ硜㡄硜㑆≗Ⱙ †††††愠牲祡✨獳慨㔲✶笧卓䅈㔲紶湷㥄䉇⭯䥗婘戫䑖䐷潪潄八橂噫瑧晵祘桂䔱晱湘ㄱ猫䝕Ⱗ∠屵䙸屁䍸尵へ∶牴敵Ⱙ †††††愠牲祡✨獳慨㔲✶眧䑮䜹潂圫塉⭚噢㝄橄䑯歯䉑歪杖畴塦䉹ㅨ煅塦ㅮ⬱啳❇產硜䅆硜㕃硜㘰⤢ਬ††††㬩 †素紊
Fatal error: Class 'Horde_Auth_TestCase' not found in /home/vagrant/horde/framework/Auth/test/Horde/Auth/Unit/PasswdTest.php on line 18
==3899== 
==3899== HEAP SUMMARY:
==3899==     in use at exit: 17,540 bytes in 17 blocks
==3899==   total heap usage: 28,050 allocs, 28,033 frees, 3,366,942 bytes allocated
==3899== 
==3899== LEAK SUMMARY:
==3899==    definitely lost: 288 bytes in 2 blocks
==3899==    indirectly lost: 188 bytes in 4 blocks
==3899==      possibly lost: 0 bytes in 0 blocks
==3899==    still reachable: 17,064 bytes in 11 blocks
==3899==         suppressed: 0 bytes in 0 blocks
==3899== Rerun with --leak-check=full to see details of leaked memory
==3899== 
==3899== For counts of detected and suppressed errors, rerun with: -v
==3899== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 28 from 6)
 [2015-01-30 09:20 UTC] yunosh@php.net
USE_ZEND_ALLOC=0 valgrind --leak-check=full php -r 'require "Autoload.php"; require "Unit/PasswdTest.php";' 
==3906== Memcheck, a memory error detector
==3906== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==3906== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==3906== Command: php -r require\ "Autoload.php";\ require\ "Unit/PasswdTest.php";
==3906== 
㼼桰⨯ਪ⨠䈠獡⁥潦⁲整瑳湩⹧ ਪ⨠䌠灯特杩瑨㈠㄰ⴰ〲㔱䠠牯敤䰠䍌⠠瑨灴⼺眯睷栮牯敤漮杲⤯ ਪ⨠匠敥琠敨攠据潬敳⁤楦敬䌠偏䥙䝎映牯氠捩湥敳椠普牯慭楴湯⠠䝌䱐⸩䤠⁦潹ੵ⨠搠摩渠瑯爠捥楥敶琠楨⁳楦敬敳⁥瑨灴⼺眯睷栮牯敤漮杲氯捩湥敳⽳杬汰ㄲਮ⨠ 捀瑡来牯⁹†潈摲੥⨠䀠慰正条⁥†䄠瑵੨⨠䀠畳灢捡慫敧唠楮呴獥獴 慀瑵潨⁲††畇湮牡圠潲敢眼潲敢䁬慰摲獵搮㹥 汀捩湥敳††瑨灴⼺眯睷栮牯敤漮杲氯捩湥敳⽳杬汰ㄲ䰠假⨠䀠楬歮†††栠瑴㩰⼯数牡栮牯敤漮杲椯摮硥瀮灨瀿捡慫敧䄽瑵੨⨠ਯ汣獡⁳潈摲彥畁桴呟獥䍴獡⁥硥整摮⁳潈摲彥敔瑳䍟獡੥੻††異汢捩映湵瑣潩敧䍴敲敤瑮慩獬⤨ †笠 †††爠瑥牵牡慲⡹ †††††愠牲祡✨灡浲㕤Ⱗ✠愤牰␱ㄱ䉃䭢偘䄤癶䝍橂㡲戱⽃华婍硉䝲✮ㄧ䌱扂塋❐Ⱙ †††††愠牲祡✨牣灹❴㠧㍥坉瑳浊浳獸Ⱗ✠攸⤧ਬ††††††牡慲⡹挧祲瑰戭潬晷獩❨␧氲剘硲剙㍒㘹Ⱗ✠㈤塬牒奸剒㤳✶Ⱙ †††††愠牲祡✨牣灹⵴敤❳㐧䴵扩㙗䜯堳奅Ⱗ✠㔴⤧ਬ††††††牡慲⡹挧祲瑰洭㕤Ⱗ✠ㄤ㔤㜳㍡ち⑥坃䱹䩖兤晋扸偋療䔯穦ねⰧ✠ㄤ㔤㜳㍡ち⑥⤧ਬ††††††牡慲⡹洧㕤戭獡㙥✴伧橆䤲䍪偳䙊䵦硁六䱸假㵷✽✧Ⱙ †††††愠牲祡✨摭ⴵ敨❸㌧㔸昸㈶㌲愰㍣㥣㔱㍦〰㙣㐶ㄳ挲㌶❦✧Ⱙ †††††愠牲祡✨獭摡Ⱗ✠"foobar"Ⱗ✠⤧ਬ††††††牡慲⡹洧獹汱Ⱗ✠㤪㕂〰㐳䈳㕃䔲㤲ㄱ㜱䔲㕂䄲㕅䙃㠴㜴〶䌴䔶✵✧Ⱙ †††††愠牲祡✨汰楡❮昧潯慢❲✧Ⱙ †††††愠牲祡✨桳❡椧偅⭘兓䥗㍒㙰氷⽪稰杩坓䭔杈✽✧Ⱙ †††††愠牲祡✨浳㕤Ⱗ✠卉乃睊睺㍐䌰摡桡灪扫㉌㙬䡢硊㉤㉨Ⱗ✠穩牬睱癨⤧ਬ††††††牡慲⡹猧摭✵笧䵓㕄䥽䍓䩎穷偷〳慃慤橨歰䱢氲戶䩈摸栲✲椧決煲桷❶牴敵Ⱙ †††††愠牲祡✨浳㕤Ⱗ✠湢䔳婮吰捆礫硹䬳瑯危䜵祬浤㵍Ⱗ✠物捶⤧ਬ††††††牡慲⡹猧摭✵䜧㑚坋歋圲收体橈塖桌住䅺畄䅷✽〧묃✀Ⱙ †††††愠牲祡✨浳㕤Ⱗ✠礶渲䌫䍇桚䉵㈳祤畆欳入奴嘰㵣Ⱗ✠堋埑⤧ਬ††††††牡慲⡹猧桳❡戧兵兲瘹穡牪瑈㙏䥯卦桚䉓噪摸敪婭婶噈扵㵧✽挧智摯湵❮Ⱙ †††††愠牲祡✨獳慨Ⱗ✠䱂浄硰奈䡔⼲浂㑧敶晖杢啬㠶兪䕋䭵Ⱗ✠⣐詋⤧ਬ††††††牡慲⡹猧桳❡㈧塩㡲爳慐䱢浸硲男汵㑔㝗䩭牆睡㑔✱㻁✵Ⱙ †††††愠牲祡✨獳慨Ⱗ✠卻䡓絁䤶佥潣獬㔸䡤敊䡔癥㍁㘵畲瑦䅲倲塒Ⱗ∠硜ぃ硜㡄硜㑆≗牴敵Ⱙ †††††愠牲祡✨獳慨Ⱗ✠䤶佥潣獬㔸䡤敊䡔癥㍁㘵畲瑦䅲倲塒Ⱗ∠硜ぃ硜㡄硜㑆≗Ⱙ †††††愠牲祡✨獳慨㔲✶笧卓䅈㔲紶湷㥄䉇⭯䥗婘戫䑖䐷潪潄八橂噫瑧晵祘桂䔱晱湘ㄱ猫䝕Ⱗ∠屵䙸屁䍸尵へ∶牴敵Ⱙ †††††愠牲祡✨獳慨㔲✶眧䑮䜹潂圫塉⭚噢㝄橄䑯歯䉑歪杖畴塦䉹ㅨ煅塦ㅮ⬱啳❇產硜䅆硜㕃硜㘰⤢ਬ††††㬩 †素紊
Fatal error: Class 'Horde_Auth_TestCase' not found in /home/vagrant/horde/framework/Auth/test/Horde/Auth/Unit/PasswdTest.php on line 18
==3906== 
==3906== HEAP SUMMARY:
==3906==     in use at exit: 17,540 bytes in 17 blocks
==3906==   total heap usage: 28,049 allocs, 28,032 frees, 3,366,894 bytes allocated
==3906== 
==3906== 80 bytes in 1 blocks are definitely lost in loss record 13 of 17
==3906==    at 0x4C28BED: malloc (vg_replace_malloc.c:263)
==3906==    by 0xA231BF: _emalloc (zend_alloc.c:2197)
==3906==    by 0xA3896D: zend_string_alloc (zend_string.h:97)
==3906==    by 0xA389D6: zend_string_init (zend_string.h:133)
==3906==    by 0xA3C1DD: zend_eval_stringl (zend_execute_API.c:1057)
==3906==    by 0xA3C47E: zend_eval_stringl_ex (zend_execute_API.c:1115)
==3906==    by 0xA3C501: zend_eval_string_ex (zend_execute_API.c:1126)
==3906==    by 0xAF7483: do_cli (php_cli.c:1022)
==3906==    by 0xAF8351: main (php_cli.c:1361)
==3906== 
==3906== 396 (208 direct, 188 indirect) bytes in 1 blocks are definitely lost in loss record 16 of 17
==3906==    at 0x4C28BED: malloc (vg_replace_malloc.c:263)
==3906==    by 0xA231BF: _emalloc (zend_alloc.c:2197)
==3906==    by 0xA0068E: compile_file (zend_language_scanner.l:565)
==3906==    by 0xE17D6C2: ???
==3906==    by 0xA009D1: compile_filename (zend_language_scanner.l:640)
==3906==    by 0xAA80ED: ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER (zend_vm_execute.h:2983)
==3906==    by 0xAA1093: execute_ex (zend_vm_execute.h:352)
==3906==    by 0xAA11E5: zend_execute (zend_vm_execute.h:381)
==3906==    by 0xA3C2B6: zend_eval_stringl (zend_execute_API.c:1074)
==3906==    by 0xA3C47E: zend_eval_stringl_ex (zend_execute_API.c:1115)
==3906==    by 0xA3C501: zend_eval_string_ex (zend_execute_API.c:1126)
==3906==    by 0xAF7483: do_cli (php_cli.c:1022)
==3906== 
==3906== LEAK SUMMARY:
==3906==    definitely lost: 288 bytes in 2 blocks
==3906==    indirectly lost: 188 bytes in 4 blocks
==3906==      possibly lost: 0 bytes in 0 blocks
==3906==    still reachable: 17,064 bytes in 11 blocks
==3906==         suppressed: 0 bytes in 0 blocks
==3906== Reachable blocks (those to which a pointer was found) are not shown.
==3906== To see them, rerun with: --leak-check=full --show-reachable=yes
==3906== 
==3906== For counts of detected and suppressed errors, rerun with: -v
==3906== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 28 from 6)
 [2015-01-30 20:02 UTC] requinix@php.net
That output is actually some PHP code (class definition for Horde_Auth_TestCase) being incorrectly interpreted in UTF-16 encoding.

Seems like there's something wrong with the TestCase.php file itself as GitHub doesn't want to show the file contents, but some cursory tests against the raw download all show it's fine.
 [2015-01-31 01:49 UTC] yohgaki@php.net
Could you identify when this issue is introduced?
 [2015-02-01 05:18 UTC] phpmpan at mpan dot pl
At byte offset 0x044C there is a sequence (", f, o, o, b, a, r, ") encoded using UTF-16LE, hence containing 0x00 octets. At 0x0639 and 0x067C there is something that looks like binary data embedded directly in the script.
 [2015-02-01 05:25 UTC] phpmpan at mpan dot pl
I mean the "TestCase.php" file.
 [2015-02-02 08:02 UTC] yunosh@php.net
That's correct, the file contains some binary data contained in PHP code (password hashes). We could (and should) fix that of course. But it's still a BC break that this file doesn't parse anymore. And the leaking of what looks like some memory dump could be the sign of a bigger, maybe even security relevant, problem.
 [2015-02-04 16:48 UTC] phpmpan at mpan dot pl
As {[2015-01-30 20:02 UTC] requinix@php.net} has pointed out, nothing is leaked. The dump is just the source code from "TestCase.php" interpreted as UTF-16LE encoded data. No security problem is present.

The first sixteen octets are:
3C 3F 70 68  70 0A 2F 2A  2A 0A 20 2A  20 42 61 73
("<?php\n/**\n * Bas")
Upon inclusion PHP reads this as UTF-16LE, interpreting this as eight characters: U+3F3C U+6870 U+0A70 U+2A2F U+0A2A U+2A20 U+4220 U+7361 ("㼼桰ੰ⨯ਪ⨠䈠獡"). Since "㼼桰ੰ⨯ਪ" is, obviously, not a PHP opening tag, PHP treats this not as a code, but as a raw data and sends it as it would with any other data. Since no PHP code is ever found, `Horde_Auth_TestCase` is never defined by the file and a fatal error occurs, which is also visible in the output.

So everything works as expected.
 [2015-02-04 16:57 UTC] yunosh@php.net
Still a regression from PHP 5 that should be documented then.
 [2016-06-20 14:17 UTC] cmb@php.net
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2016-06-20 14:17 UTC] cmb@php.net
Jan, does this issue still persist with latest PHP 7? If so, the
affected PHP version should be updated, at least.
 [2016-06-20 15:17 UTC] yunosh@php.net
-Status: Feedback +Status: Closed
 [2016-06-20 15:17 UTC] yunosh@php.net
Thank you for your bug report. This issue has already been fixed
in the latest released version of PHP, which you can download at 
http://www.php.net/downloads.php

Cannot reproduce anymore, at least with 7.0.4.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat May 18 23:01:31 2024 UTC