View Issue Details

IDProjectCategoryView StatusLast Update
0001736XdebugStep Debuggingpublic2020-01-22 16:02
ReporterSammyK Assigned To 
PriorityhighSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version2.9.1 
Target Version2.9.2Fixed in Version2.9.2 
Summary0001736: Segmentation fault when other extensions run PHP in RINIT
Description

Starting in Xdebug 2.9.1, when xdebug.remote_enable=1, Xdebug can cause a segmentation fault when another extension makes a call to zend_compile_file() in RINIT.

In the case of the Datadog PHP tracer extension, when ddtrace's RINIT is run before Xdebug's RINIT, XG_DBG(breakable_lines_map) is not yet allocated so the segmentation fault occurs when trying to execute a PHP file set via the ddtrace.request_init_hook INI setting: https://github.com/DataDog/dd-trace-php/blob/2025ef3aa38c0ba490b2379ac9dcc214549d1876/src/ext/request_hooks.c#L179

A possible fix PR can be found here: https://github.com/xdebug/xdebug/pull/544

Steps To Reproduce

Set xdebug.remote_enable=1 and then call zend_compile_file() from a neighboring extension's RINIT before Xdebug's RINIT is run.

TagsNo tags attached.
Operating System
PHP Version7.4.0-7.4.4

Activities

derick

2020-01-22 16:01

administrator   ~0005222

Thanks for the test, and fix! I've merged this now.