From: Stanislav Malyshev Date: Mon, 30 Oct 2000 17:18:39 +0000 (+0000) Subject: Update to use reference-serializer too X-Git-Tag: php-4.0.4RC3~432 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fad7092ff8ce3c2e4ef2a84a5dd5e5945ab12777;p=php Update to use reference-serializer too --- diff --git a/ext/sysvshm/sysvshm.c b/ext/sysvshm/sysvshm.c index 6986a29295..c28082760e 100644 --- a/ext/sysvshm/sysvshm.c +++ b/ext/sysvshm/sysvshm.c @@ -212,6 +212,7 @@ PHP_FUNCTION(shm_put_var) int type; pval shm_var; int ret; + php_serialize_data_t var_hash; if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg_id, &arg_key,&arg_var) == FAILURE) { WRONG_PARAM_COUNT; @@ -233,7 +234,9 @@ PHP_FUNCTION(shm_put_var) shm_var.type=IS_STRING; shm_var.value.str.len=0; shm_var.value.str.val=0; - php_var_serialize(&shm_var,arg_var,NULL); + PHP_VAR_SERIALIZE_INIT(var_hash); + php_var_serialize(&shm_var,arg_var,&var_hash); + PHP_VAR_SERIALIZE_DESTROY(var_hash); /* insert serialized variable into shared memory */ ret=php_put_shm_data(shm_list_ptr->ptr,key,shm_var.value.str.val,shm_var.value.str.len); @@ -260,6 +263,7 @@ PHP_FUNCTION(shm_get_var) char *shm_data; long shm_varpos; sysvshm_chunk *shm_var; + php_serialize_data_t var_hash; if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg_id, &arg_key) == FAILURE) { WRONG_PARAM_COUNT; @@ -287,10 +291,13 @@ PHP_FUNCTION(shm_get_var) shm_var=(sysvshm_chunk*)((char*)shm_list_ptr->ptr+shm_varpos); shm_data=&shm_var->mem; - if(php_var_unserialize(&return_value, (const char **) &shm_data, shm_data+shm_var->length)!=1) { + PHP_VAR_UNSERIALIZE_INIT(var_hash); + if(php_var_unserialize(&return_value, (const char **) &shm_data, shm_data+shm_var->length,&var_hash)!=1) { + PHP_VAR_UNSERIALIZE_DESTROY(var_hash); php_error(E_WARNING, "variable data in shared memory is corruped"); RETURN_FALSE; } + PHP_VAR_UNSERIALIZE_DESTROY(var_hash); } /* }}} */