aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-01-30 15:13:11 +0000
committerocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-01-30 15:13:11 +0000
commit8f8f21d16824c1a2f1c0b0b45ba72b040e5a0d8f (patch)
tree15485f6f1b3e29d41d7f75ab1718bc586df3914f
parentc5266ef55ab0180afe77f329db8f6a0b6a8ea269 (diff)
downloadruby-8f8f21d16824c1a2f1c0b0b45ba72b040e5a0d8f.tar.gz
* ext/syck/rubyext.c (syck_resolver_transfer): workaround for SEGV.
ex: YAML.load("!map:B {}"). [ruby-core:7217] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--ext/syck/rubyext.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 18e648b2d8..5389367082 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Jan 31 00:08:22 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
+
+ * ext/syck/rubyext.c (syck_resolver_transfer): workaround for SEGV.
+ ex: YAML.load("!map:B {}"). [ruby-core:7217]
+
Sat Jan 28 07:49:30 2006 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
* lib/rdoc/usage.rb: support "a:0:33" style caller[-1]. In this case
diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c
index 14dbd9cb61..078de4f78d 100644
--- a/ext/syck/rubyext.c
+++ b/ext/syck/rubyext.c
@@ -1134,6 +1134,10 @@ syck_resolver_transfer( self, type, val )
type = subclass;
subclass = cYObject;
}
+ else /* workaround for SEGV. real fix please */
+ {
+ rb_raise( rb_eTypeError, "invalid subclass" );
+ }
}
break;
}