aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-09-29 16:34:37 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-09-29 16:34:37 +0000
commite12e4b74bb767c013192ff873df0c310b031214a (patch)
treecb85f9a439a46c9f6597cbf02c7f2d73737c08ed
parente309b76a0c5025df5d007b5ce8b4a2f739589cb5 (diff)
downloadruby-e12e4b74bb767c013192ff873df0c310b031214a.tar.gz
parse.y: fix memory leak
* parse.y (parser_free): fix memory leak at syntax error when warn-indent is enabled. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--parse.y9
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a40d29994d..c11a4a4b67 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Sep 30 01:34:34 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (parser_free): fix memory leak at syntax error when
+ warn-indent is enabled.
+
Tue Sep 29 22:27:50 2015 Benoit Daloze <eregontp@gmail.com>
* parse.y: fix minor typo. [ci skip][fix GH-1038].
diff --git a/parse.y b/parse.y
index 38153e9ac1..a697834fd7 100644
--- a/parse.y
+++ b/parse.y
@@ -10630,6 +10630,15 @@ parser_free(void *ptr)
prev = local->prev;
xfree(local);
}
+#ifndef RIPPER
+ {
+ token_info *ptinfo;
+ while ((ptinfo = parser->token_info) != 0) {
+ parser->token_info = ptinfo->next;
+ xfree(ptinfo);
+ }
+ }
+#endif
xfree(ptr);
}