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

Reply via email to