Re: Re: CLI Crash Bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Eric Stenson in (Thu, 25 Jul 2013 18:35:25 +0000):
>I've filed bug to track this
>issue.  The root cause of the AV is when more than one module hooks the
>interned strings, a "wrong" value will be left in
>CG(interned_strings_start), which the Zend core thinks contains the
>value that it alloc'd during zend_interned_strings_init().
>I've added a potential fix for the Zend folks to consider.  It's
>slightly less harsh than the workaround provided by Jan.  ;)

The problem is so obvious, that I am surprised it did not com to surface
earlier. And the patch is elegant: do not assume interned_strings_start
is still the same, but free only the memory that you owned at startup.

In fact, the patch should be backported to PHP 5.4 as well. I do not
have a use case for X86, but I ran into the same problem woth PHP 5.4
X64. I know this is no official version, but as an illustration of the
problem it still is useful.

Compare these two builds:

Try the unpatched one first. Put this in your php.ini:




Then run from the commandline in your php-directory:
php-cgi.exe -m

php-cgi will crash after showing the loaded modules. Debugging with VC9
gave this result:
Quite another breakpoint as in the PHP 5.5 example, but with the same
cause: freeing memory you do not own.

In the patched build I backported Eric's patch for zend_string.c to PHP
5.4. Result: no crash anymore.

A last remark: i do not think the problem is Windows specific. This is
exectly the same problem, but with the combination of opcache and apc:


PHP Windows Mailing List (
To unsubscribe, visit:

[Index of Archives]     [PHP Home]     [PHP Users]     [PHP Database Programming]     [PHP Install]     [Kernel Newbies]     [Yosemite Forum]     [PHP Books]

  Powered by Linux