summaryrefslogtreecommitdiff
path: root/ext/sysvshm/sysvshm.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sysvshm/sysvshm.c')
-rw-r--r--ext/sysvshm/sysvshm.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/ext/sysvshm/sysvshm.c b/ext/sysvshm/sysvshm.c
index 174e9f0301..9255f3677f 100644
--- a/ext/sysvshm/sysvshm.c
+++ b/ext/sysvshm/sysvshm.c
@@ -222,7 +222,7 @@ PHP_FUNCTION(shm_put_var)
long key, id;
sysvshm_shm *shm_list_ptr;
int type;
- pval shm_var;
+ smart_str shm_var = {0};
int ret;
php_serialize_data_t var_hash;
@@ -243,17 +243,14 @@ PHP_FUNCTION(shm_put_var)
/* setup string-variable and serialize */
- shm_var.type=IS_STRING;
- shm_var.value.str.len=0;
- shm_var.value.str.val=0;
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);
+ ret=php_put_shm_data(shm_list_ptr->ptr,key,shm_var.c,shm_var.len);
/* free string */
- efree(shm_var.value.str.val);
+ smart_str_free(&shm_var);
if(ret==-1) {
php_error(E_WARNING, "not enough shared memory left");