aboutsummaryrefslogtreecommitdiffstats
path: root/re.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-16 11:13:47 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-16 11:13:47 +0000
commit60fa63b819e12601eb4ad88faa52548ef389aabb (patch)
tree7af621155dd3bb8cc601fe9504f60b2a023b62ed /re.c
parentbb831578c5e52eaa6af149874fd1f95fec8ee59f (diff)
downloadruby-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
Diffstat (limited to 're.c')
-rw-r--r--re.c4
1 files changed, 4 insertions, 0 deletions
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);