summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-05 20:54:52 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-05 20:54:52 +0000
commit37a483a884b789911fbaf46c640ed9a3346ff2d2 (patch)
tree1088fe7634631c816680250ed7018680a6ae7295
parent214a3aa34ef90c0222e20762021437e710dd16e4 (diff)
* re.c (rb_reg_search): need to free allocated buffer in re_register. [ruby-core:17518]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@17902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--re.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 956401a2fc..f66890db9c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -911,6 +911,10 @@ Sat May 17 12:15:48 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* file.c (rb_file_s_extname): ditto.
+Sat May 17 10:18:44 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * re.c (rb_reg_search): need to free allocated buffer in re_register.
+
Mon Mar 3 23:34:13 2008 GOTOU Yuuzou <gotoyuzo@notwork.org>
* lib/webrick/httpservlet/filehandler.rb: should normalize path
diff --git a/re.c b/re.c
index 6cada9a714..5553d28dba 100644
--- a/re.c
+++ b/re.c
@@ -927,6 +927,7 @@ rb_reg_search(re, str, pos, reverse)
}
if (result < 0) {
+ re_free_registers(&regs);
rb_backref_set(Qnil);
return result;
}
@@ -943,6 +944,7 @@ rb_reg_search(re, str, pos, reverse)
}
re_copy_registers(RMATCH(match)->regs, &regs);
+ re_free_registers(&regs);
RMATCH(match)->str = rb_str_new4(str);
rb_backref_set(match);