Issue #16603 has been updated by nagachika (Tomoyuki Chikanaga).

Backport changed from 2.5: DONTNEED, 2.6: DONTNEED, 2.7: REQUIRED to 2.5: DONTNEED, 2.6: DONTNEED, 2.7: DONE

ruby_2_7 e778de2c82478dda930cfc8d795ed4e0e60ea775 merged revision(s) 11963da9e8e98821860fbb0c0f2adc118860c814.

----------------------------------------
Bug #16603: Passing number or symbol to kwargs splat causes segmentation fualt
https://bugs.ruby-lang.org/issues/16603#change-87491

* Author: tompng (tomoya ishida)
* Status: Closed
* Priority: Normal
* ruby -v: ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19], ruby 2.8.0dev (2020-02-03T04:07:34Z master 0ab7f2f222) [x86_64-darwin19]
* Backport: 2.5: DONTNEED, 2.6: DONTNEED, 2.7: DONE
----------------------------------------
Passing 1 or :a as a kwargs splat to a c-lang defined method causes segmentation fault. (It was a TypeError in ruby 2.6.0)
~~~ruby
p **1
p **:a
rand **1
~~~

Passing it to an user-defined method won't cause segv, but it was a TypeError in ruby 2.6.0
~~~ruby
def p2*;end
p2 **1 # nil (TypeError in ruby 2.6.0)
p2 **:a # nil (TypeError in ruby 2.6.0)
~~~

~~~ruby
# these are ok
a=1; p **a # TypeError
a=:a; p **a # TypeError
def p2*;end
a=1; p2 **a # TypeError
a=:a; p2 **a # TypeError
~~~




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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>