Browse Source

Fixed memory leaks

migration/RELEASE_1_0_0
Dmitry Stogov 21 years ago
parent
commit
fc03492c0b
  1. 20
      Zend/zend.c
  2. 5
      ext/libxml/libxml.c

20
Zend/zend.c

@ -727,8 +727,24 @@ static void zend_u_function_dtor(zend_function *function)
TSRMLS_FETCH();
destroy_zend_function(function TSRMLS_CC);
if (function->type == ZEND_INTERNAL_FUNCTION && function->common.function_name) {
free(function->common.function_name);
if (function->type == ZEND_INTERNAL_FUNCTION) {
if (function->common.function_name) {
free(function->common.function_name);
}
if (function->common.arg_info) {
int n = function->common.num_args;
while (n > 0) {
--n;
if (function->common.arg_info[n].name) {
free(function->common.arg_info[n].name);
}
if (function->common.arg_info[n].class_name) {
free(function->common.arg_info[n].class_name);
}
}
free(function->common.arg_info);
}
}
}

5
ext/libxml/libxml.c

@ -798,11 +798,14 @@ int php_libxml_register_export(zend_class_entry *ce, php_libxml_export_node expo
export_hnd.export_func = export_function;
if (zend_hash_add(&php_libxml_exports, ce->name, ce->name_length + 1, &export_hnd, sizeof(export_hnd), NULL) == SUCCESS) {
int ret;
UChar *uname;
uname = malloc(UBYTES(ce->name_length+1));
u_charsToUChars(ce->name, uname, ce->name_length+1);
return zend_u_hash_add(&php_libxml_exports, IS_UNICODE, uname, ce->name_length + 1, &export_hnd, sizeof(export_hnd), NULL);
ret = zend_u_hash_add(&php_libxml_exports, IS_UNICODE, uname, ce->name_length + 1, &export_hnd, sizeof(export_hnd), NULL);
free(uname);
return ret;
}
return FAILURE;
}

Loading…
Cancel
Save