# Ruby-trunk Marshal.dump bug

**URL:** <https://www.ruby-forum.com/t/ruby-trunk-marshal-dump-bug/133121>\
**Category:** Development\
**Created:** [March 28, 2008, 2:00am UTC](https://www.ruby-forum.com/t/ruby-trunk-marshal-dump-bug/133121 "2008-03-28T02:00:12Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nagachika](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/bb73d2/32.png) [@nagachika](https://www.ruby-forum.com/u/nagachika)\
**Post date:** [March 28, 2008, 2:00am UTC](https://www.ruby-forum.com/t/ruby-trunk-marshal-dump-bug/133121/1 "2008-03-28T02:00:12Z")

</div>

nagachika e$B$H?=$7$^$9!#e(B

Debian GNU/Linux e$B$Ge(B 1.9(trunk)  
e$B$G0J2\<$N%9%/%j%W%H$,4|BTDL$j$KF0$-$^$;$s!#e(B

$ cat test.rb  
t = Time.now  
p Marshal.load(Marshal.dump([t, t]))  
$ ./ruby-trunk test.rb  
[2008-03-28 09:44:03 +0900, “7P”]

e$B@53N$K$Oe(B Time e$B$K8B$i$:!"e(B\_dump  
e$B$,JV$9J8;zNs$K%$%s%9%?%s%9JQ?t$,e(B  
e$BDI2C$5$l$F$$$k$h$&$J\>l9g$K$\*$+$7$/$J$k$h$&$G$9!#e(B  
Time e$B$Oe(B nsec  
e$B$N@:EY$N\>pJs$r%$%s%9%?%s%9JQ?t$KF~$l$F$$$^$7$?!#e(B

e$B0J2\<$O%Q%C%A$G$9!#$48!F$$/$@$5$$!#e(B

# Index: marshal.c

— marshal.c (e$B%j%S%8%g%se(B 15844)  
+++ marshal.c (e$B:n6H%3%T!\<e(B)  
@@ -574,8 +574,6 @@  
else {  
if (OBJ\_TAINTED(obj)) arg-\>taint = Qtrue;

- 

```
  st_add_direct(arg->data, obj, arg->data->num_entries);

```

- 

```
   {
       st_data_t compat_data;
       rb_alloc_func_t allocator =

```

rb\_get\_alloc\_func(RBASIC(obj)-\>klass);  
@@ -592,6 +590,8 @@  
if (rb\_respond\_to(obj, s\_mdump)) {  
VALUE v;

- 

```
      st_add_direct(arg->data, obj, arg->data->num_entries);

```

- 

```
      v = rb_funcall(obj, s_mdump, 0, 0);
      w_class(TYPE_USRMARSHAL, obj, arg, Qfalse);
      w_object(v, arg, limit);

```

@@ -618,9 +618,13 @@  
else if (hasiv) {  
w\_ivar(obj, ivtbl, &c\_arg);  
}

- 

```
      st_add_direct(arg->data, obj, arg->data->num_entries);

```

- 

```
      return;
  }

```

- 

```
  st_add_direct(arg->data, obj, arg->data->num_entries);

```

- 

```
  switch (BUILTIN_TYPE(obj)) {
    case T_CLASS:
      if (FL_TEST(obj, FL_SINGLETON)) {
```

---

<div class="post-metadata">

**Author:** ![nagachika](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/bb73d2/32.png) [@nagachika](https://www.ruby-forum.com/u/nagachika)\
**Post date:** [April 10, 2008, 10:45am UTC](https://www.ruby-forum.com/t/ruby-trunk-marshal-dump-bug/133121/2 "2008-04-10T10:45:15Z")

</div>

In article [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
nagachika [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> e$B0J2\<$O%Q%C%A$G$9!#$48!F$$/$@$5$$!#e(B  
> e$B$=$N%Q%C%A$@$1$@$He(B test\_marshal.rb e$B$Ge(B SEGV  
> e$B$9$k$N$G!"$b$&$9e(B  
> e$B$3$7=$@5$7$FF~$l$^$7$?!#e(B
