summaryrefslogtreecommitdiff
path: root/ruby_parser.c
diff options
context:
space:
mode:
authorPeter Zhu <[email protected]>2024-04-29 13:06:39 -0400
committerPeter Zhu <[email protected]>2024-04-29 14:04:42 -0400
commit95d036aaf07892f5b97ce744a42e8d541cad91ec (patch)
tree40443a5d11acd6ca749a8c0361f14950896a57b2 /ruby_parser.c
parentd75bbba255e086d625429d5a1311cc4b4396c296 (diff)
Fix memory leak in ruby_parser
For example: 10.times do 100_000.times do eval("") end puts `ps -o rss= -p #{$$}` end Before: 19872 26480 32848 39504 45904 52672 59200 65760 72128 78496 After: 17328 20752 23664 28400 30656 34224 37424 40784 43328 46656
Diffstat (limited to 'ruby_parser.c')
-rw-r--r--ruby_parser.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/ruby_parser.c b/ruby_parser.c
index d8b7580e00..1e9f4d1899 100644
--- a/ruby_parser.c
+++ b/ruby_parser.c
@@ -518,6 +518,7 @@ parser_free(void *ptr)
{
struct ruby_parser *parser = (struct ruby_parser*)ptr;
rb_ruby_parser_free(parser->parser_params);
+ xfree(parser);
}
static size_t