Project

General

Profile

ActionsLike0

Bug #10685

closed

Segfault from keyword rest arg when coercing an object that defines to_hash

Added by headius (Charles Nutter) about 10 years ago. Updated about 10 years ago.

Status:
Closed
Assignee:
-
Target version:
[ruby-core:67264]

Description

This spec appears to cause the segfault mentioned in http://rubini.us/2014/12/31/matz-s-ruby-developers-don-t-use-rubyspec/ today.

    it "calls #to_hash on the last element if keyword arguments are present" do
      obj = mock("destructure block keyword arguments")
      obj.should_receive(:to_hash).and_return({x: 9})

      result = m([1, 2, 3, obj]) { |a, *b, c, **k| [a, b, c, k] }
      result.should == [1, [2], 3, {x: 9}]
    end

I tried to boil it down to a shorter example and was not able to isolate it from RubySpec/mspec entanglement.

Here's the full dump including the last spec line that starts to run (the spec above): https://gist.github.com/headius/5d52df923eb615729ca3

I ran it using mspec gem from rubyspec's "archive" branch using "mspec ci -f s language".


Related issues 2 (0 open2 closed)

Has duplicate Ruby - Bug #10695: Segmentation fault with *args and **kwargsClosedmatz (Yukihiro Matsumoto)01/04/2015Actions
Has duplicate Ruby - Bug #10734: Segfault when combining default arguments with keyword argumentsClosed01/12/2015Actions

Updated by nobu (Nobuyoshi Nakada) about 10 years ago

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

Updated by nobu (Nobuyoshi Nakada) about 10 years ago

  • Description updated (diff)
  • Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED

Updated by nobu (Nobuyoshi Nakada) about 10 years ago

  • Has duplicate Bug #10695: Segmentation fault with *args and **kwargs added
#7

Updated by ktsj (Kazuki Tsujimoto) about 10 years ago

  • Has duplicate Bug #10734: Segfault when combining default arguments with keyword arguments added

Updated by naruse (Yui NARUSE) about 10 years ago

  • Backport changed from 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONE
ActionsLike0

Also available in: Atom PDF