1
0
mirror of https://github.com/php/php-src.git synced 2026-04-09 17:13:31 +02:00

- Don't load modules which have different debug and ZTS information than

PHP() (untested). Not sure how to handle API version. Should it also not
  load? It probably should but it might bite us at some point.
@ Prevent from loading dynamic PHP modules which were compiled with different
  debug and thread safety modes than PHP, which resulted in a crash (Andi)
This commit is contained in:
Andi Gutmans
2000-03-11 16:23:30 +00:00
parent 781b6e9435
commit fe558092e4

View File

@@ -70,6 +70,12 @@ PHP_FUNCTION(dl)
#ifdef HAVE_LIBDL
#ifdef ZTS
#define USING_ZTS 1
#else
#define USING_ZTS 0
#endif
void php_dl(pval *file,int type,pval *return_value)
{
void *handle;
@@ -126,6 +132,17 @@ void php_dl(pval *file,int type,pval *return_value)
RETURN_FALSE;
}
module_entry = get_module();
if ((module_entry->zend_debug != ZEND_DEBUG) || (module_entry->zts != USING_ZTS)) {
php_error(E_CORE_WARNING,
"%s: Unable to initialize module\n"
"Module compiled with debug=%d, thread-safety=%d\n"
"PHP compiled with debug=%d, thread-safety=%d\n"
"These options need to match\n",
module_entry->name, module_entry->zend_debug, module_entry->zts,
ZEND_DEBUG, USING_ZTS);
DL_UNLOAD(handle);
RETURN_FALSE;
}
module_entry->type = type;
module_entry->module_number = zend_next_free_module();
if (module_entry->module_startup_func) {