|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2016-10-04 15:34 UTC] ab@php.net
-Status: Open
+Status: Feedback
[2016-10-04 15:34 UTC] ab@php.net
[2016-10-04 23:47 UTC] petr dot maly at remotehost dot cz
-Status: Feedback
+Status: Open
[2016-10-04 23:47 UTC] petr dot maly at remotehost dot cz
[2017-01-08 20:50 UTC] ab@php.net
-Status: Open
+Status: Feedback
[2017-01-08 20:50 UTC] ab@php.net
[2017-01-09 09:38 UTC] petr dot maly at remotehost dot cz
-Status: Feedback
+Status: Open
[2017-01-09 09:38 UTC] petr dot maly at remotehost dot cz
[2017-01-10 00:45 UTC] ab@php.net
-Status: Open
+Status: Suspended
[2017-01-10 00:45 UTC] ab@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 02:00:01 2025 UTC |
Description: ------------ When the script uses COM object several times and all the statements are executed, php-cgi.exe crashes while it is shutting down. This causes that Apache returns error 5xx, the script code is executed correctly. The crashing happens randomly. I was inspecting the code of php_com_dotnet extension and I found that the php crashes while it is trying to call destructor on function object: com_handlers.c(237:246): static void function_dtor(zval *zv) { zend_internal_function *f = (zend_internal_function*)Z_PTR_P(zv); zend_string_release(f->function_name); if (f->arg_info) { efree(f->arg_info); } efree(f); } The destructor crashes because f->function_name is NULL (sometimes), therefore zend_string_release is unable to access member variables. Suggested fix: static void function_dtor(zval *zv) { zend_internal_function *f = (zend_internal_function*)Z_PTR_P(zv); if (f->function_name != NULL) { zend_string_release(f->function_name); } if (f->arg_info) { efree(f->arg_info); } efree(f); } Best Regards, Petr Maly