Project

General

Profile

Actions

Bug #5921

closed

SEGV caused by Encoding.compatible? "abc", :abc

Bug #5921: SEGV caused by Encoding.compatible? "abc", :abc

Added by brixen (Brian Shirai) almost 14 years ago. Updated almost 14 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]
Backport:
[ruby-core:42204]

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) almost 14 years ago Actions #1 [ruby-core:42205]

It also SEGVs on trunk.

Updated by brixen (Brian Shirai) almost 14 years ago Actions #2 [ruby-core:42206]

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) almost 14 years ago Actions #3 [ruby-core:42207]

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) almost 14 years ago Actions #4

  • 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.


Actions

Also available in: PDF Atom