aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--re.c4
2 files changed, 8 insertions, 0 deletions
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 <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]
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);