Project

General

Profile

Actions

Bug #7499

closed

public_send can be used to invoke protected methods

Added by alindeman (Andy Lindeman) over 11 years ago. Updated over 11 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.0.0dev (2012-12-03) [x86_64-darwin12.2.1]
Backport:
[ruby-core:50489]

Description

class Foo
def bar
"wtf?"
end
protected :bar

def invoke_bar
public_send(:bar)
end
end

puts Foo.public_send(:bar) rescue puts "error; this seems normal"

puts Foo.new.invoke_bar

The last statement outputs "wtf?" on:

* 1.9.3p194

* 1.9.3p327

* ruby-head (2012-12-03)

The last statement raises a NoMethodError on:

* JRuby 1.7.0

* rubinius 2.0.0dev 2279857e

I /expected/ the NoMethodError behavior


Files

bug-7499.patch (2.7 KB) bug-7499.patch Anonymous, 12/03/2012 08:10 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0