зеркало из https://github.com/github/ruby.git
Fix issues detected by code analysis tool (mainly Coverity).
* Fix leaked storage in addr2line.c. * Fix for "top_root" leaking the resource. [Fix GH-1956] From: Jun Aruga <jaruga@redhat.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
958817d50d
Коммит
893949167b
|
@ -633,11 +633,12 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
|
|||
h = dlopen(NULL, RTLD_NOW|RTLD_LOCAL);
|
||||
if (!h) continue;
|
||||
s = dlsym(h, strtab + sym->st_name);
|
||||
if (!s) continue;
|
||||
if (dladdr(s, &info)) {
|
||||
if (s && dladdr(s, &info)) {
|
||||
dladdr_fbase = (uintptr_t)info.dli_fbase;
|
||||
dlclose(h);
|
||||
break;
|
||||
}
|
||||
dlclose(h);
|
||||
}
|
||||
if (ehdr->e_type == ET_EXEC) {
|
||||
obj->base_addr = 0;
|
||||
|
@ -705,6 +706,9 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
|
|||
finish:
|
||||
return dladdr_fbase;
|
||||
fail:
|
||||
if (file != NULL) {
|
||||
munmap(file, (size_t)filesize);
|
||||
}
|
||||
return (uintptr_t)-1;
|
||||
}
|
||||
|
||||
|
|
|
@ -3596,6 +3596,7 @@ expand_case_fold_string(Node* node, regex_t* reg)
|
|||
if (n == 0 || varlen == 0) {
|
||||
if (IS_NULL(snode)) {
|
||||
if (IS_NULL(root) && IS_NOT_NULL(prev_node)) {
|
||||
onig_node_free(top_root);
|
||||
top_root = root = onig_node_list_add(NULL_NODE, prev_node);
|
||||
if (IS_NULL(root)) {
|
||||
onig_node_free(prev_node);
|
||||
|
@ -3627,6 +3628,7 @@ expand_case_fold_string(Node* node, regex_t* reg)
|
|||
}
|
||||
}
|
||||
if (IS_NULL(root) && IS_NOT_NULL(prev_node)) {
|
||||
onig_node_free(top_root);
|
||||
top_root = root = onig_node_list_add(NULL_NODE, prev_node);
|
||||
if (IS_NULL(root)) {
|
||||
onig_node_free(prev_node);
|
||||
|
@ -3677,6 +3679,7 @@ expand_case_fold_string(Node* node, regex_t* reg)
|
|||
if (r != 0) goto mem_err;
|
||||
|
||||
if (IS_NOT_NULL(prev_node) && IS_NULL(root)) {
|
||||
onig_node_free(top_root);
|
||||
top_root = root = onig_node_list_add(NULL_NODE, prev_node);
|
||||
if (IS_NULL(root)) {
|
||||
onig_node_free(srem);
|
||||
|
|
Загрузка…
Ссылка в новой задаче