diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | marshal.c | 3 |
2 files changed, 7 insertions, 0 deletions
@@ -1,3 +1,7 @@ +Sun Sep 9 01:59:08 2007 Tanaka Akira <akr@fsij.org> + + * marshal.c (r_object0): check T_STRUCT type for structs. + Sun Sep 9 01:17:05 2007 Tanaka Akira <akr@fsij.org> * marshal.c (r_object0): don't call user-defined initialize for @@ -1263,6 +1263,9 @@ r_object0(struct load_arg *arg, int *ivp, VALUE extmod) } v = rb_obj_alloc(klass); + if (TYPE(v) != T_STRUCT) { + rb_raise(rb_eArgError, "dump format error"); + } v = r_entry(v, arg); values = rb_ary_new2(len); for (i=0; i<len; i++) { |