mirror of
https://github.com/php/php-src.git
synced 2024-09-22 18:37:25 +00:00
Fixed memory leaks
This commit is contained in:
parent
0ed53849a5
commit
fc03492c0b
20
Zend/zend.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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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…
Reference in New Issue
Block a user