On 23.07.2006 15:27, Andrei Zmievski wrote:
Right, we need a different workaround. I am about to jump on a plane, but will revisit it as soon as possible.

Great, thanks a lot.

On Jul 23, 2006, at 5:22 AM, Antony Dovgal wrote:

On 19.07.2006 21:32, Rob Richards wrote:
@@ -607,11 +613,18 @@
        zval *id;
        int name_len = 0, ns_uri_len = 0;
        xmlreader_object *intern;
-       char *name, *ns_uri, *retchar = NULL;
+       xmlChar *retchar = NULL;
+       char *name, *ns_uri;
+       UConverter *orig_runtime_conv;
+
+       orig_runtime_conv = ZEND_U_CONVERTER(UG(runtime_encoding_conv));
+       UG(runtime_encoding_conv) = UG(utf8_conv);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &name, &name_len, &ns_uri, &ns_uri_len) == FAILURE) {
+               UG(runtime_encoding_conv) = orig_runtime_conv;
                return;
        }
+       UG(runtime_encoding_conv) = orig_runtime_conv;

First of all, why would you want to do that when Unicode mode is disabled?
Second, here is what we've got now:
1) UG(runtime_encoding_conv) is not set;
2) ZEND_U_CONVERTER() returns UG(fallback_encoding_conv);
3) you set UG(runtime_encoding_conv) to UG(fallback_encoding_conv);
4) on shutdown unicode_globals_dtor() destroys UG (fallback_encoding_conv) first; 5) then it tries to destroy UG(runtime_encoding_conv) that points to UG(fallback_encoding_conv), which just has been destroyed; 6) Segfault. The end.

--
Wbr, Antony Dovgal

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





--
Wbr, Antony Dovgal

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to