Issue #8043 has been reported by marcandre (Marc-Andre Lafortune). ---------------------------------------- Bug #8043: Marshal will dump some object with singleton methods https://bugs.ruby-lang.org/issues/8043 Author: marcandre (Marc-Andre Lafortune) Status: Open Priority: Normal Assignee: Category: core Target version: current: 2.1.0 ruby -v: r39608 The check for "dumpability" is incorrect: o = Object.new def o.foo; end Marshal.dump(o) # => TypeError: singleton can't be dumped o.singleton_class.send :prepend, Enumerable Marshal.dump(o) # => "\x04\be:\x0FEnumerablee:\vObjecto;\x06\0", should fail
on 2013-03-08 01:48
on 2013-03-08 10:39
Issue #8043 has been updated by nobu (Nobuyoshi Nakada). Description updated But extended objects are allowed, aren't they? ---------------------------------------- Bug #8043: Marshal will dump some object with singleton methods https://bugs.ruby-lang.org/issues/8043#change-37388 Author: marcandre (Marc-Andre Lafortune) Status: Open Priority: Normal Assignee: Category: core Target version: current: 2.1.0 ruby -v: r39608 =begin The check for "dumpability" is incorrect: o = Object.new def o.foo; end Marshal.dump(o) # => TypeError: singleton can't be dumped o.singleton_class.send :prepend, Enumerable Marshal.dump(o) # => "\x04\be:\x0FEnumerablee:\vObjecto;\x06\0", should fail =end
on 2013-03-08 20:35
Issue #8043 has been updated by marcandre (Marc-Andre Lafortune). My understanding is that objects whose singleton classes have included / prepended classes should be dumpable & loadable, but if the singleton class itself has proper instance methods it can't be dumped. In the example I gave, the first TypeError is ok, since o's singleton class has a :foo method. Prepending a module should not make it suddenly dumpable. The check for this is in `w_extended` is incorrect. If I'm not mistaken, it assumes that the singleton class is first in the ancestry chain, which is no longer necessarily the case. ---------------------------------------- Bug #8043: Marshal will dump some object with singleton methods https://bugs.ruby-lang.org/issues/8043#change-37400 Author: marcandre (Marc-Andre Lafortune) Status: Open Priority: Normal Assignee: Category: core Target version: current: 2.1.0 ruby -v: r39608 =begin The check for "dumpability" is incorrect: o = Object.new def o.foo; end Marshal.dump(o) # => TypeError: singleton can't be dumped o.singleton_class.send :prepend, Enumerable Marshal.dump(o) # => "\x04\be:\x0FEnumerablee:\vObjecto;\x06\0", should fail =end
on 2013-03-09 00:18
Issue #8043 has been updated by nobu (Nobuyoshi Nakada). Thank you, I misread that `o' would be different object. I'll fix it. ---------------------------------------- Bug #8043: Marshal will dump some object with singleton methods https://bugs.ruby-lang.org/issues/8043#change-37406 Author: marcandre (Marc-Andre Lafortune) Status: Open Priority: Normal Assignee: Category: core Target version: current: 2.1.0 ruby -v: r39608 =begin The check for "dumpability" is incorrect: o = Object.new def o.foo; end Marshal.dump(o) # => TypeError: singleton can't be dumped o.singleton_class.send :prepend, Enumerable Marshal.dump(o) # => "\x04\be:\x0FEnumerablee:\vObjecto;\x06\0", should fail =end
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.