# \[Ruby 1.9-Bug#3925\]\[Open\] setting Tempfile/StringIO to $std\* before startup causes \[BUG\] Segmentatio

**URL:** <https://www.ruby-forum.com/t/ruby-1-9-bug-3925-open-setting-tempfile-stringio-to-std-before-startup-causes-bug-segmentatio/196285>\
**Category:** Development\
**Created:** [October 10, 2010, 9:04pm UTC](https://www.ruby-forum.com/t/ruby-1-9-bug-3925-open-setting-tempfile-stringio-to-std-before-startup-causes-bug-segmentatio/196285 "2010-10-10T21:04:29Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Akio\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@Akio\_T](https://www.ruby-forum.com/u/Akio_T)\
**Post date:** [October 10, 2010, 9:04pm UTC](https://www.ruby-forum.com/t/ruby-1-9-bug-3925-open-setting-tempfile-stringio-to-std-before-startup-causes-bug-segmentatio/196285/1 "2010-10-10T21:04:29Z")

</div>

Bug #3925: setting Tempfile/StringIO to $std\* before startup causes  
[BUG] Segmentation fault  
[http://redmine.ruby-lang.org/issues/show/3925](http://redmine.ruby-lang.org/issues/show/3925)

e$B5/I\<\<Te(B: Akio T.  
e$B%9%F!\<%?%9e(B: Open, e$BM%@hEYe(B: Normal  
e$B%+%F%4%je(B: core, Target version: 1.9.x  
ruby -v: ruby 1.9.2p0 (2010-08-18 revision 29036) [i386-mswin32\_100]

$stdout, in,  
erre$B$Ke(BTempfilee$B$de(BStringIOe$B$r%;%C%H$9$k%i%$%V%i%j$re(B-re$B$GFI$\_9~$`$He(B[BUG]e$B$H$J$j$^$9!#e(B  
e$BNc!Ke(B  
#d.rb  
require ‘stringio’  
$stdout = StringIO.new  
#---------------------------------  
e$B$r:n$C$Fe(B

$ruby -r./d -e ‘puts “hello”’  
-e: [BUG] Segmentation fault  
ruby 1.9.2p0 (2010-08-18 revision 29036) [i386-mswin32\_100]

## – control frame ---------- c:0001 p:0000 s:0002 b:0002 l:00122c d:00122c TOP

e$B0J2\<$N%Q%C%A$G\>/$J$/$H$be(BTempfilee$B$O5\_$($^$9!#e(BStringIOe$B$K$D$$$F$Oe(Bset\_encodinge$B$,L5$$$N$GL5M}$G$9$,!#e(B

— [io.c.org](http://io.c.org) Sat Jul 24 19:38:33 2010  
+++ io.c Mon Oct 11 03:47:30 2010  
@@ -8652,9 +8652,9 @@ rb\_stdio\_set\_default\_encoding(void)  
extern VALUE rb\_stdin, rb\_stdout, rb\_stderr;  
VALUE val = Qnil;

- rb\_io\_set\_encoding(1, &val, rb\_stdin);
- rb\_io\_set\_encoding(1, &val, rb\_stdout);
- rb\_io\_set\_encoding(1, &val, rb\_stderr);

- rb\_funcall3(rb\_stdin, rb\_intern(“set\_encoding”), 1, &val);
- rb\_funcall3(rb\_stdout, rb\_intern(“set\_encoding”), 1, &val);
- rb\_funcall3(rb\_stderr, rb\_intern(“set\_encoding”), 1, &val);  
}

/\*

-re$B$GFI$_9~$`$H\<+F0E\*$K%G%P%C%,IU$-\>uBV$GF0$/!J%?!\<%2%C%H$Ke(Brequiree$B$rKd$a9~$_$?$/$J$$!K%i%$%V%i%j$r3+H/$7$F$$$F5$$E$-$^$7$?!#e(B

---

<div class="post-metadata">

**Author:** ![Akio\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@Akio\_T](https://www.ruby-forum.com/u/Akio_T)\
**Post date:** [October 10, 2010, 11:56pm UTC](https://www.ruby-forum.com/t/ruby-1-9-bug-3925-open-setting-tempfile-stringio-to-std-before-startup-causes-bug-segmentatio/196285/2 "2010-10-10T23:56:35Z")

</div>

e$B%A%1%C%He(B #3925 e$B$,99?7$5$l$^$7$?!#e(B (by Yui NARUSE)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B  
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

This issue was solved with changeset r29435.  
Akio, thank you for reporting this issue.  
Your contribution to Ruby is greatly appreciated.  
May Ruby be with you.

* * *

[http://redmine.ruby-lang.org/issues/show/3925](http://redmine.ruby-lang.org/issues/show/3925)
