(*p)++;
}
if (**p != ':' || *((*p) + 1) != '{') {
- pval_destructor(*rval);
return 0;
}
for ((*p) += 2; **p && **p != '}' && i > 0; i--) {
pval *data = emalloc(sizeof(pval));
if (!php_var_unserialize(&key, p, max)) {
- pval_destructor(*rval);
efree(key);
efree(data);
return 0;
}
if (!php_var_unserialize(&data, p, max)) {
- pval_destructor(*rval);
pval_destructor(key);
efree(key);
efree(data);
}
if (!php_var_unserialize(&return_value, &p, p + (*buf)->value.str.len)) {
+ zval_dtor(return_value);
php_error(E_NOTICE, "unserialize() failed at offset %d of %d bytes",p-(*buf)->value.str.val,(*buf)->value.str.len);
RETURN_FALSE;
}