From 60fa63b819e12601eb4ad88faa52548ef389aabb Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 16 Feb 2008 11:13:47 +0000 Subject: [PATCH] * re.c (match_inspect): avoid SEGV with MatchData.allocate.inspect. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ re.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index 7d3508490f..c609c0d145 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Feb 16 20:12:47 2008 Tanaka Akira + + * re.c (match_inspect): avoid SEGV with MatchData.allocate.inspect. + Sat Feb 16 19:04:17 2008 NARUSE, Yui * string.c (str_strlen): revert r15507. [ruby-dev:33810] diff --git a/re.c b/re.c index 4867104250..90dae9ba9e 100644 --- a/re.c +++ b/re.c @@ -1510,6 +1510,10 @@ match_inspect(VALUE match) struct backref_name_tag *names; VALUE regexp = RMATCH(match)->regexp; + if (regexp == 0) { + return rb_sprintf("#<%s:%p>", cname, (void*)match); + } + names = ALLOCA_N(struct backref_name_tag, num_regs); MEMZERO(names, struct backref_name_tag, num_regs);