diff options
author | duerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-27 21:00:06 +0000 |
---|---|---|
committer | duerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-27 21:00:06 +0000 |
commit | 7086aae378d85dd84f5ca3dc8c374bb4cabe29b0 (patch) | |
tree | fe5b5633e5b03a4afa1be2aaba3f7007b5fd23f1 /regparse.c | |
parent | 50441014ffd3645f258e56b9415b7787c910408b (diff) |
make sure all nodes are correctly freed in create_property_node()
We make sure that the newly created tree and all remaining nodes passed in
in the node_array are freed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'regparse.c')
-rw-r--r-- | regparse.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/regparse.c b/regparse.c index c70faaa34e..69f700986c 100644 --- a/regparse.c +++ b/regparse.c @@ -5770,6 +5770,10 @@ create_sequence_node(Node **np, Node **node_array) while (--i >= 0) { *np = node_new_list(node_array[i], tmp); if (IS_NULL(*np)) { + while (i >= 0) { + onig_node_free(node_array[i]); + node_array[i--] = NULL_NODE; + } onig_node_free(tmp); return ONIGERR_MEMORY; } |