Is there a better way of acheiving this?
I want the unserialized data to be passed back as an out parameter, but
if I pass the actual out_message var to php_var_unserialize I get segfaults
or overruns.
--Wez.
> if (do_unserialize) {
> php_unserialize_data_t var_hash;
> + zval *tmp = NULL;
> const char *p = (const char*)messagebuffer->mtext;
>
> + MAKE_STD_ZVAL(tmp);
> PHP_VAR_UNSERIALIZE_INIT(var_hash);
> - if (!php_var_unserialize(&return_value, &p, p + result,
>&var_hash TSRMLS_CC)) {
> + if (!php_var_unserialize(&tmp, &p, p + result, &var_hash
>TSRMLS_CC)) {
> zend_error(E_WARNING, "%s(): message corrupted",
>get_active_function_name(TSRMLS_C));
> RETVAL_FALSE;
> }
> + REPLACE_ZVAL_VALUE(&out_message, tmp, 0);
> + FREE_ZVAL(tmp);
> PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
> } else {
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php