From: Tanaka Akira Date: 2009-06-12T21:16:24+09:00 Subject: [ruby-dev:38597] Re: marshal data too short by Marshal.load(Marshal.dump(Marshal.load(Marshal.dump("")))) In article <87eitpetev.fsf@fsij.org>, Tanaka Akira writes: > 以下のように、"" を 2回 marshal すると ArgumentError になります。 おっと、locale 依存でした。 % LANG=ja_JP.EUC-JP ./ruby -ve 'Marshal.load(Marshal.dump(Marshal.load(Marshal.dump(""))))' ruby 1.9.2dev (2009-06-12 trunk 23669) [i686-linux] -e:1:in `load': marshal data too short (ArgumentError) from -e:1:in `
' また、C locale なら以下のようにして再現させられます。 % LANG=C ./ruby -ve 'Marshal.load(Marshal.dump(Marshal.load(Marshal.dump("".force_encoding("EUC-JP")))))' ruby 1.9.2dev (2009-06-12 trunk 23669) [i686-linux] -e:1:in `load': marshal data too short (ArgumentError) from -e:1:in `
' -- [田中 哲][たなか あきら][Tanaka Akira]