Segfault in CVS : Namespace related.
| From: | l0t3k | Date: | Tue, 20 May 2003 06:21:43 +0000 |
| Subject: | Segfault in CVS : Namespace related. | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-1762@lists.php.net to get a copy of this message | ||
im sorry i dont have a diff (my build environment is sensitive at the
moment), but there is a segfault initializing an internal namespace.
simplest reproducing C code is :
<code>
#define MODULE_NAMESPACE "I18N"
zend_namespace *i18n_ns = NULL;
void php_I18N_register_namespace(TSRMLS_DC)
{
zend_namespace temp_ns;
temp_ns.name = MODULE_NAMESPACE;
temp_ns.name_length = strlen(MODULE_NAMESPACE);
i18n_ns = zend_register_internal_namespace(&temp_ns TSRMLS_CC);
}
</code>
the problem is that the ns->builtin_functions table is not properly
initialized in zend_init_namespace, so a subsequent call to
<code>
if (ns->builtin_functions) {
zend_register_functions(ns, ns->builtin_functions, &ns->function_table,
MODULE_PERSISTENT TSRMLS_CC);
}
</code>
causes the code to crash.
l0t3k