Backport #3643
closedFile#expand_path("c:") cause Segmenation fault on Windows.
Description
=begin
First I found a bug when Pathname#expand_path with 'c:' on Windows.
C:>ruby -rpathname -e "p Pathname.new('c:').expand_path"
c:/usr/lib/ruby/1.9.1/pathname.rb:596: [BUG] Segmentation fault
ruby 1.9.3dev (2010-08-01 trunk 28828) [i386-mswin32_90]
-- control frame ----------
c:0005 p:---- s:0016 b:0016 l:000015 d:000015 CFUNC :expand_path
c:0004 p:0029 s:0012 b:0011 l:000010 d:000010 METHOD c:/usr/lib/ruby/1.9.1/pathname.rb:596
c:0003 p:0024 s:0007 b:0006 l:0019cc d:000fa4 EVAL -e:1
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0019cc d:0019cc TOP
-- Ruby level backtrace information ----------------------------------------
-e:1:in <main>' c:/usr/lib/ruby/1.9.1/pathname.rb:596:in
expand_path'
c:/usr/lib/ruby/1.9.1/pathname.rb:596:in `expand_path'
[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.
Please contact the application's support team for more information.
And I noticed that the real cause of error is in File.expand_path('c:')
C:>ruby -e "p File.expand_path('c:')"
-e:1: [BUG] Segmentation fault
ruby 1.9.3dev (2010-08-01 trunk 28828) [i386-mswin32_90]
-- control frame ----------
c:0004 p:---- s:0011 b:0011 l:000010 d:000010 CFUNC :expand_path
c:0003 p:0018 s:0007 b:0006 l:0019ac d:000164 EVAL -e:1
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0019ac d:0019ac TOP
-- Ruby level backtrace information ----------------------------------------
-e:1:in <main>' -e:1:in
expand_path'
[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.
Please contact the application's support team for more information.
In Ruby 1.9.1, this works fine.
C:>ruby -ve "p File.expand_path('c:')"
ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mingw32]
"C:/"
=end