Invalid block local access causes segfault #26

Closed
brixen opened this Issue Sep 24, 2009 · 1 comment

Projects

None yet

1 participant

Owner
brixen commented Sep 24, 2009

A segfault results if the VM encounters a (set|push)_local_depth when the scope nesting does not match the depth given.

For example:

class Hash
  def self.allocate
    hash = super()
    Rubinius.privately { hash.setup }
    hash
  end
end

If the compiler does not fix up the local access for hash in hash.setup in Rubinius.privately, the push_local_depth insn will attempt call_frame->scope->parent() and parent is 0x0.

Owner
brixen commented Nov 12, 2009

Fixed.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment