Bug #5921
closedSEGV caused by Encoding.compatible? "abc", :abc
Description
Calling Encoding.compatible? with a String and Symbol causes a SEGV.
Calling with two Symbols, a Symbol and Regexp, or a String and Regexp works fine.
sasha:source brian$ ruby -v -e 'p Encoding.compatible? "abc", :abc'
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]
-e:1: [BUG] Segmentation fault
Full report: https://gist.github.com/1651681
Thanks,
Brian
Updated by brixen (Brian Shirai) about 12 years ago
It also SEGVs on trunk.
Updated by brixen (Brian Shirai) about 12 years ago
The following also causes a SEGV:
ruby -v -e 'sym = "\xff".force_encoding("binary").to_sym; p Encoding.compatible? sym, :abc'
Normally, two Symbols works. The trigger appears to be the symbol not being ASCII only. The following works:
ruby -v -e 'sym = "\x7f".force_encoding("binary").to_sym; p Encoding.compatible? sym, :abc'
Updated by brixen (Brian Shirai) about 12 years ago
And this also causes a SEGV:
ruby -v -e 're = Regexp.new("\xff".force_encoding("binary")); p Encoding.compatible? re, :abc'
Using "\x7f" works.
Updated by naruse (Yui NARUSE) about 12 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r34350.
Brian, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- encoding.c (rb_enc_compatible): fix segv on symbols.
[ruby-core:42204] [Bug #5921]