以下のようにすると SEGV になります。

% ./ruby -ve '
class C
  def initialize(str)
    @str = str
  end
  def _dump(limit)
    @str
  end
  def C._load(s)
    C.new(s)
  end
end
p Marshal.load("\004\bu:\006C\003\377\377\377a")
'
ruby 1.9.0 (2007-10-14 patchlevel 0) [i686-linux]
-e:13: -- control frame ----------
c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC  :load
c:0003 p:0023 s:0006 b:0005 l:000004 d:000004 TOP    -e:13
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------ 
---------------------------
DBG> : "-e:13:in `<main>'"
-- backtrace of native function call (Use addr2line) --
0x80fa436
0x8118bb4
0x8118c53
0x80c38e5
0xb7fba420
0x80ca6a6
0x807149d
0x8071711
0x8072720
0x8072d48
0x8072d5b
0x805c243
0x8072fe4
0x80f0640
0x80f7f65
0x80f7ae2
0x80f4499
0x80f813e
0x80f8783
0x805abad
0x805ac5c
0x8057e24
0xb7e24ea8
0x8057d41
-------------------------------------------------------
[BUG] Segmentation fault
ruby 1.9.0 (2007-10-14) [i686-linux]

いくらか控えめにするとメモリの中身が覗けます。

% ./ruby -ve '
class C
  def initialize(str)
    @str = str
  end
  def _dump(limit)
    @str
  end
  def C._load(s)
    C.new(s)
  end
end
p Marshal.load("\004\bu:\006C\002\377\377a")   
'
ruby 1.9.0 (2007-10-14 patchlevel 0) [i686-linux]
#<C:0xb7c9e318 @str="a\000\000\037\001\000\000\000\000\000\000\000\000\000\000\244\343\311\267...
-- 
[田中 哲][たなか あきら][Tanaka Akira]