Bug #8634
closedSegfault with sprintf of force_encoding('UTF-16LE') on Windows
Description
The revision r41937 raised segfault in test_m17n.rb
http://ci.rubyinstaller.org/job/ruby-trunk-x64-test-all/1590/console
Here is a simplified test case.
C:\work>ruby -e 'p("%s".force_encoding("UTF-16LE")%"test")'
-e:1: [BUG] Segmentation fault
ruby 2.1.0dev (2013-07-14 trunk 41961) [i386-mingw32]
-- Control frame information -----------------------------------------------
c:0003 p:---- s:0008 e:000007 CFUNC  :p
c:0002 p:0015 s:0004 E:0007e4 EVAL   -e:1 [FINISH]
c:0001 p:0000 s:0002 E:0022b4 TOP    [FINISH]
-e:1:in <main>' -e:1:in p'
-- C level backtrace information -------------------------------------------
C:\Windows\SysWOW64\ntdll.dll(ZwWaitForSingleObject+0x15) [0x7701F8B1]
C:\Windows\syswow64\kernel32.dll(WaitForSingleObjectEx+0x43) [0x75151194]
C:\Windows\syswow64\kernel32.dll(WaitForSingleObject+0x12) [0x75151148]
c:\usr\local\bin\msvcrt-ruby210.dll(rb_vm_bugreport+0xa7) [0x6D3811B7]
c:\usr\local\bin\msvcrt-ruby210.dll(rb_name_err_mesg_new+0x69d) [0x6D2435AD]
c:\usr\local\bin\msvcrt-ruby210.dll(rb_bug+0x2e) [0x6D2443AE]
c:\usr\local\bin\msvcrt-ruby210.dll(rb_check_safe_str+0x110) [0x6D305760]
[0x00401866]
C:\Windows\SysWOW64\ntdll.dll(RtlKnownExceptionFilter+0xb7) [0x770774DF]
-- Other runtime information -----------------------------------------------
- 
Loaded script: -e 
- 
Loaded features: 0 enumerator.so 
 1 c:/usr/local/lib/ruby/2.1.0/i386-mingw32/enc/encdb.so
 2 c:/usr/local/lib/ruby/2.1.0/i386-mingw32/enc/cp949.so
 3 c:/usr/local/lib/ruby/2.1.0/i386-mingw32/enc/trans/transdb.so
 4 c:/usr/local/lib/ruby/2.1.0/i386-mingw32/rbconfig.rb
 5 c:/usr/local/lib/ruby/2.1.0/rubygems/compatibility.rb
 6 c:/usr/local/lib/ruby/2.1.0/rubygems/defaults.rb
 7 c:/usr/local/lib/ruby/2.1.0/rubygems/deprecate.rb
 8 c:/usr/local/lib/ruby/2.1.0/rubygems/errors.rb
 9 c:/usr/local/lib/ruby/2.1.0/rubygems/version.rb
 10 c:/usr/local/lib/ruby/2.1.0/rubygems/requirement.rb
 11 c:/usr/local/lib/ruby/2.1.0/rubygems/platform.rb
 12 c:/usr/local/lib/ruby/2.1.0/rubygems/basic_specification.rb
 13 c:/usr/local/lib/ruby/2.1.0/rubygems/stub_specification.rb
 14 c:/usr/local/lib/ruby/2.1.0/rubygems/specification.rb
 15 c:/usr/local/lib/ruby/2.1.0/rubygems/exceptions.rb
 16 c:/usr/local/lib/ruby/2.1.0/i386-mingw32/enc/utf_16le.so
 17 c:/usr/local/lib/ruby/2.1.0/i386-mingw32/enc/trans/utf_16_32.so
 18 c:/usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb
 19 c:/usr/local/lib/ruby/2.1.0/thread.rb
 20 c:/usr/local/lib/ruby/2.1.0/monitor.rb
 21 c:/usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb
 22 c:/usr/local/lib/ruby/2.1.0/rubygems.rb
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
This application has requested the Runtime to terminate it in an unusual way.