diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-09-15 09:59:14 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-09-15 09:59:14 +0000 |
commit | bbf88285ee3c326f267c42a3b090e440a0a07d90 (patch) | |
tree | 5d0c3b38867d5ffa219e85584187628ba86de1af /regcomp.c | |
parent | a783ee12db9915a2bc3738debef21e93cb470dd1 (diff) | |
download | ruby-bbf88285ee3c326f267c42a3b090e440a0a07d90.tar.gz |
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
Diffstat (limited to 'regcomp.c')
-rw-r--r-- | regcomp.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -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); |