diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-02-16 11:13:47 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-02-16 11:13:47 +0000 |
commit | 60fa63b819e12601eb4ad88faa52548ef389aabb (patch) | |
tree | 7af621155dd3bb8cc601fe9504f60b2a023b62ed | |
parent | bb831578c5e52eaa6af149874fd1f95fec8ee59f (diff) | |
download | ruby-60fa63b819e12601eb4ad88faa52548ef389aabb.tar.gz |
* 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
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | re.c | 4 |
2 files changed, 8 insertions, 0 deletions
@@ -1,3 +1,7 @@ +Sat Feb 16 20:12:47 2008 Tanaka Akira <akr@fsij.org> + + * re.c (match_inspect): avoid SEGV with MatchData.allocate.inspect. + Sat Feb 16 19:04:17 2008 NARUSE, Yui <naruse@ruby-lang.org> * string.c (str_strlen): revert r15507. [ruby-dev:33810] @@ -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); |