Issue #10731 has been updated by Nobuyoshi Nakada.

Status changed from Open to Closed
% Done changed from 0 to 100

Applied in changeset r49221.

----------
vm_method.c: NameError at refined method alias

* vm_method.c (rb_alias): raise a NameError when creating alias to
  a refined method if the original method of the refined method is
  not defined.  [ruby-core:67523] [Bug #10731]

----------------------------------------
Bug #10731: Segmentation fault when create alias to refined method
https://bugs.ruby-lang.org/issues/10731#change-50940

* Author: Seiei Higa
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.3.0dev (2015-01-12 trunk 49218) [x86_64-darwin14]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
following code cause segmentation fault, both `foo` and `bar` is not defined in refined class, in trunk and 2.2.0, 2.1.5, 2.0.0

``` ruby
class C
end

module RefinementBug
  refine C do
    def foo
    end

    def bar
    end
  end
end

class C
  alias foo bar
end
```

it should be raise a NameError if the original method of the refined method is not exist, like undef (#8966).

---Files--------------------------------
ruby_2015-01-12-135103_Nil.crash (11.3 KB)
bug.rb (128 Bytes)
0001-vm_method.c-raise-a-NameError-when-create-alias-to-r.patch (1.77 KB)


-- 
https://bugs.ruby-lang.org/