View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000725 | Xdebug | public | 2011-10-02 17:51 | 2011-11-11 23:48 | |
Reporter | r.osmanov | Assigned To | derick | ||
Priority | high | Severity | tweak | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Platform | All | OS | openSUSE | OS Version | 11.4 |
Product Version | 2.1.0 | ||||
Summary | 0000725: EG(current_execute_data) is not checked in xdebug.c, xdebug_statement_call | ||||
Description | I've PECL extension that calls a user space function with call_user_function(). The latter is normally called via zend_execute(). But zend_execute is replaced with xdebug_execute, which implies EG(current_execute_data) is set. But, call_user_function() is invoked asyncronously(!) by means of external library, and current_execute_data couldn't generally be updated in an async call. Consequently, extension fails with segmentation fault. Standard zend_execute() checks, if EG(current_execute_data) is available, and doesn't crash with segfault:
While xdebug_execute() .. xdebug_statement_call() lacks this check:
/ HERE I'VE GOT SEGMENTATION FAULT / | ||||
Steps To Reproduce | compile an extension with function like | ||||
Additional Information | The following change should fix the problem:
===================================== I'm quoting gdb's output: | ||||
Tags | gdb, pecl, SIGSEGV | ||||
Operating System | openSUSE 11.4 | ||||
PHP Version | 5.3.6 | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2011-10-02 17:51 | r.osmanov | New Issue | |
2011-10-02 17:52 | r.osmanov | Tag Attached: gdb | |
2011-10-02 17:52 | r.osmanov | Tag Attached: pecl | |
2011-10-02 17:52 | r.osmanov | Tag Attached: SIGSEGV | |
2011-10-22 14:06 | derick | Note Added: 0001849 | |
2011-10-22 14:06 | derick | Status | new => closed |
2011-10-22 14:06 | derick | Assigned To | => derick |
2011-10-22 14:06 | derick | Resolution | open => fixed |
2011-11-11 23:48 | derick | Note Added: 0001855 | |
2016-07-31 12:35 | derick | Category | Debug client (console) => debugclient (debugging tool) |
2016-07-31 12:35 | derick | Category | debugclient (debugging tool) => (No Category) |