body->refcount = 1;
if (stream) {
- php_stream_auto_cleanup(stream);
body->res = stream->res;
++GC_REFCOUNT(body->res);
} else {
stream = php_stream_temp_create(TEMP_STREAM_DEFAULT, 0xffff);
- php_stream_auto_cleanup(stream);
body->res = stream->res;
}
+ php_stream_auto_cleanup(stream);
if (body_ptr) {
*body_ptr = body;
ZEND_RESULT_CODE php_http_message_body_add_form_field(php_http_message_body_t *body, const char *name, const char *value_str, size_t value_len)
{
- zend_string *safe_name;
+ zend_string *safe_name = zend_string_init(name, strlen(name), 0);
- safe_name = php_addslashes(estrdup(name), strlen(name), 1);
+ safe_name = php_addslashes(safe_name, 1);
BOUNDARY_OPEN(body);
php_http_message_body_appendf(
{
size_t path_len = strlen(path);
char *path_dup = estrndup(path, path_len);
- zend_string *safe_name, *base_name;
+ zend_string *base_name, *safe_name = zend_string_init(name, strlen(name), 0);
- safe_name = php_addslashes(estrdup(name), strlen(name), 1);
+ safe_name = php_addslashes(safe_name, 1);
base_name = php_basename(path_dup, path_len, NULL, 0);
BOUNDARY_OPEN(body);
if (!ZEND_HASH_GET_APPLY_COUNT(fields)) {
ZEND_HASH_INC_APPLY_COUNT(fields);
- ZEND_HASH_FOREACH_KEY_VAL(fields, key.h, key.key, val)
+ ZEND_HASH_FOREACH_KEY_VAL_IND(fields, key.h, key.key, val)
{
char *str = format_key(&key, name);
if (!ZEND_HASH_GET_APPLY_COUNT(files)) {
ZEND_HASH_INC_APPLY_COUNT(files);
- ZEND_HASH_FOREACH_KEY_VAL(files, key.h, key.key, val)
+ ZEND_HASH_FOREACH_KEY_VAL_IND(files, key.h, key.key, val)
{
if (Z_TYPE_P(val) == IS_ARRAY || Z_TYPE_P(val) == IS_OBJECT) {
char *str = format_key(&key, name);
{
php_http_message_body_object_t *o;
- o = ecalloc(1, sizeof(php_http_message_body_object_t) + (ce->default_properties_count - 1) * sizeof(zval));
+ o = ecalloc(1, sizeof(*o) + zend_object_properties_size(ce));
zend_object_std_init(&o->zo, php_http_message_body_class_entry);
object_properties_init(&o->zo, ce);
php_http_message_body_class_entry = zend_register_internal_class(&ce);
php_http_message_body_class_entry->create_object = php_http_message_body_object_new;
memcpy(&php_http_message_body_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
+ php_http_message_body_object_handlers.offset = XtOffsetOf(php_http_message_body_object_t, zo);
php_http_message_body_object_handlers.clone_obj = php_http_message_body_object_clone;
- php_http_message_body_object_handlers.dtor_obj = php_http_message_body_object_free;
+ php_http_message_body_object_handlers.free_obj = php_http_message_body_object_free;
zend_class_implements(php_http_message_body_class_entry, 1, zend_ce_serializable);
return SUCCESS;