mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Update to use reference-serializer too
This commit is contained in:
parent
c31faf0bd9
commit
fad7092ff8
@ -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);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user