Closed as not planned
Description
Description
Issue:
I encountered a segmentation fault when attempting to load a hello_world module using the dl() function. The seg fault does not occur when I remove the RTLD_DEEPBIND mode in the dlopen() function from zend_portability.h.
Version:
I'm using PHP version 8.1.3.
Setup:
Here's the setup I have:
a) I have a hello world module that is built as a dynamic library.
b) I'm loading the dynamic library using the dl() function in PHP and invoking the hello_world function. However, I'm experiencing a segmentation fault with the following stack trace:
#0 0x00000000 in ?? ()
#1 0xf3d7b672 in zend_vspprintf (pbuf=0xffff9c4c, max_len=0,
#include <php.h>
ZEND_BEGIN_ARG_INFO(arginfo_hello_world, 0)
ZEND_END_ARG_INFO()
static PHP_FUNCTION(hello_world)
{
TSRMLS_FETCH();
php_printf("Hello, World!\n");
}
static zend_function_entry hello_functions[] = {
PHP_FE(hello_world, arginfo_hello_world)
PHP_FE_END
};
zend_module_entry hello_module_entry = {
STANDARD_MODULE_HEADER,
"hello",
hello_functions,
NULL,
NULL,
NULL,
NULL,
NULL,
NO_VERSION_YET,
STANDARD_MODULE_PROPERTIES
};
#ifdef COMPILE_DL_HELLO
ZEND_TSRMLS_CACHE_EXTERN()
#endif
ZEND_GET_MODULE(hello)
PHP_MINIT_FUNCTION(hello)
{
return SUCCESS;
}
PHP_MSHUTDOWN_FUNCTION(hello)
{
return SUCCESS;
}
PHP_RINIT_FUNCTION(hello)
{
#if defined(COMPILE_DL_HELLO) && defined(ZTS)
ZEND_TSRMLS_CACHE_UPDATE();
#endif
return SUCCESS;
}
PHP_RSHUTDOWN_FUNCTION(hello)
{
return SUCCESS;
}
PHP_MINFO_FUNCTION(hello)
{
php_info_print_table_start();
php_info_print_table_header(2, "hello support", "enabled");
php_info_print_table_end();
}
PHP Version
PHP 8.1.3
Operating System
No response