# File.read ($B$^$?$O(B String#include?) $B$G(BSEGV

**URL:** <https://www.ruby-forum.com/t/file-read-b-o-b-string-include-b-g-bsegv/133497>\
**Category:** Development\
**Created:** [April 1, 2008, 3:41am UTC](https://www.ruby-forum.com/t/file-read-b-o-b-string-include-b-g-bsegv/133497 "2008-04-01T03:41:22Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [April 1, 2008, 3:41am UTC](https://www.ruby-forum.com/t/file-read-b-o-b-string-include-b-g-bsegv/133497/1 "2008-04-01T03:41:22Z")

</div>

e$B%o%J%Y$H?=$7$^$9!#e(B

MinGWe$B\>e$Ne(BHEADe$B$G0J2\<$N%9%/%j%W%H$rAv$i$;$k$He(Bi=200e$B!Ae(B2000e$B$N$"$?$j$Ge(BSEGVe$B$r5/$3$7$^$7$?!#e(B

(1\<\<16).times do |i|  
p i  
File.read( **FILE** , 20).include?(“MD5SUM =”)  
end

e$B$_$=$i$/F1$88=\>]$Ge(B meka test-all e$B$,e(B rubygems/format.rb  
e$B$Ge(B \* e$B$^$l$Ke(B \* SEGV e$B$7$^$9!#e(B  
GCe$B\<~$j$+$H;W$&$N$G$9$,!"e(BGC.stress=truee$B$G$be(BGC.disablee$B$G$b:F8=$7$J$$$N$G$_e$2$G$7$?!#e(B  
[ruby-dev:34185] e$B$Ne(BSEGV  
e$B$b$3$l$N$;$$$+$b!D$H$$$&$N$O$5$9$,$KET9g$h$/9M$($9$.$G$7$g$&$+!#e(B

# e$BJL7o$G$9$,!"e(BMinGW e$B$K$Oe(B \_longjmp

e$B$,$J$$$?$a!!e(Brev.15875 e$B$O%S%k%I$K\<:GT$7$^$9!#e(B

# \_setjmp e$B$,$"$C$Fe(B \_longjmp

e$B$,$J$$$h$&$J$\*$+$7$J4D6-$r;H$&$[$&$,0-$$$s$@$H$O;W$$$^$9$,!#e(B

---

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [April 1, 2008, 9:38am UTC](https://www.ruby-forum.com/t/file-read-b-o-b-string-include-b-g-bsegv/133497/2 "2008-04-01T09:38:02Z")

</div>

e$B$J$+$@$G$9!#e(B

At Tue, 1 Apr 2008 10:40:28 +0900,  
wanabe wrote in [ruby-dev:34194]:

> MinGWe$B\>e$Ne(BHEADe$B$G0J2\<$N%9%/%j%W%H$rAv$i$;$k$He(Bi=200e$B!Ae(B2000e$B$N$"$?$j$Ge(BSEGVe$B$r5/$3$7$^$7$?!#e(B
> 
> (1\<\<16).times do |i|  
> p i  
> File.read( **FILE** , 20).include?(“MD5SUM =”)  
> end

e$B?t2s7+$jJV$7$^$7$?$,!"e(BLinuxe$B$G$be(Bmingwe$B$G$b:F8=$G$-$^$;$s$G$7$?!#e(B  
mingwe$B$N%3%s%Q%$%i$N%P!\<%8%g%s$H!“e(BCFLAGSe$B$J$I$r65$($F$/$@$5$$!#2De(B  
e$BG=$G$”$l$P!"e(Bgdbe$B$N%P%C%/%H%l!\<%9$r8+$;$F$b$i$($k$H=u$+$j$^$9!#e(B

> # e$BJL7o$G$9$,!"e(BMinGW e$B$K$Oe(B \_longjmp e$B$,$J$$$?$a!!e(Brev.15875 e$B$O%S%k%I$K\<:GT$7$^$9!#e(B
> 
> # \_setjmp e$B$,$"$C$Fe(B \_longjmp e$B$,$J$$$h$&$J$\*$+$7$J4D6-$r;H$&$[$&$,0-$$$s$@$H$O;W$$$^$9$,!#e(B

e$B$3$A$i$OD\>$7$^$7$?!#e(B

---

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [April 1, 2008, 11:16am UTC](https://www.ruby-forum.com/t/file-read-b-o-b-string-include-b-g-bsegv/133497/3 "2008-04-01T11:16:08Z")

</div>

e$B%o%J%Y$G$9!#e(B

08/04/01 e$B$Ke(B Nobuyoshi N.[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
e$B$5$s$O=q$-$^$7$?e(B:

> e$B?t2s7+$jJV$7$^$7$?$,!"e(BLinuxe$B$G$be(Bmingwe$B$G$b:F8=$G$-$^$;$s$G$7$?!#e(B  
> mingwe$B$N%3%s%Q%$%i$N%P!\<%8%g%s$H!“e(BCFLAGSe$B$J$I$r65$($F$/$@$5$$!#2De(B  
> e$BG=$G$”$l$P!"e(Bgdbe$B$N%P%C%/%H%l!\<%9$r8+$;$F$b$i$($k$H=u$+$j$^$9!#e(B

e$B$9$\_$^$;$s$"$j$,$H$&$4$6$$$^$9!#e(Bgcc e$B$Oe(B [SF.net](http://SF.net)  
e$B$+$i%@%&%s%m!\<%I$7$?e(B  
gcc-core-3.4.5-20060117-1.tar.gz e$B$N$b$N$@$H5-21$7$F$$$^$9!#e(B

$ gcc -v  
Reading specs from c:/MinGW/bin/…/lib/gcc/mingw32/3.4.5/specs  
Configured with: …/gcc-3.4.5/configure --with-gcc --with-gnu-ld  
–with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw  
–enable-threads --disable-nls  
–enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry  
–disable-shared --enable-sjlj-exceptions --enable-libgcj  
–disable-java-awt --without-x --enable-java-gc=boehm  
–disable-libgcj-debug --enable-interpreter  
–enable-hash-synchronization --enable-libstdcxx-debug  
Thread model: win32  
gcc version 3.4.5 (mingw special)

CFLAGS  
e$B$H$$$&$N$O4D6-JQ?t$N$3$H$G$7$g$&$+!)$3$l$O6u$K$J$C$F$$$^$9!#e(B  
e$B%S%k%I;~$K$Oe(B Makefile e$B$K=q$+$l$F$$$ke(B -g -O2  
e$B$@$1$,M-8z$K$J$C$F$$$k$h$&$G$9!#e(B  
e$BG0$N$?$aIU5-$7$^$9$H!"e(BWinXP Home e$B$Ne(B SP2 e$B$G0lHL%f!\<%6$Ge(B  
MSYS e$B\>e$+$i\<B9T$7$F$$$^$9!#e(B

gdb e$B$r$+$^$;$k$H$J$\<$+:F8=$7$J$/$J$j$^$9!#e(B  
e$B$3$A$i$N4D6-$,$I$3$+$GIe$C$F$$$k!“$H9M$($k$N$,0lHVBEEv$N$h$&$K;W$$$^$9!#e(B  
e$B$G$”$l$P!"e(BSEGV  
e$B$9$k$h$&$J%Q%C%A$,6vA3\<j85$G$&$^$/F0$$$?$3$H$b@bL@$,$D$-$^$9!#e(B  
e$B2?EY$b$\*A{$,$;$7$^$7$?!#e(B

---

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [April 2, 2008, 2:31am UTC](https://www.ruby-forum.com/t/file-read-b-o-b-string-include-b-g-bsegv/133497/4 "2008-04-02T02:31:43Z")

</div>

e$B$J$+$@$G$9!#e(B

At Tue, 1 Apr 2008 18:15:36 +0900,  
wanabe wrote in [ruby-dev:34198]:

> CFLAGS e$B$H$$$&$N$O4D6-JQ?t$N$3$H$G$7$g$&$+!)$3$l$O6u$K$J$C$F$$$^$9!#e(B  
> e$B%S%k%I;~$K$Oe(B Makefile e$B$K=q$+$l$F$$$ke(B -g -O2 e$B$@$1$,M-8z$K$J$C$F$$$k$h$&$G$9!#e(B  
> e$BG0$N$?$aIU5-$7$^$9$H!"e(BWinXP Home e$B$Ne(B SP2 e$B$G0lHL%f!\<%6$Ge(B MSYS e$B\>e$+$i\<B9T$7$F$$$^$9!#e(B

MSYSe$B$G$9$+!#e(BMSYSe$B$C$F$^$@C/$b$A$c$s$HF0:n3NG’$7$F$J$$$h$&$J5$$,$7e(B  
e$B$^$9!#DL\>oe(Bmingwe$BHGe(Brubye$B$H$$$&$H!"e(Bcygwine$B$Ne(B-mno-cygwine$B$N$[$&$r9M$($Fe(B  
e$B$7$^$&$N$G!#e(B

---

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [April 4, 2008, 7:14am UTC](https://www.ruby-forum.com/t/file-read-b-o-b-string-include-b-g-bsegv/133497/5 "2008-04-04T07:14:10Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:34248] Re: File.read (e$B$^$?$Oe(B  
String#include?) e$B$Ge(BSEGV”  
on Fri, 4 Apr 2008 11:24:57 +0900, wanabe [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|e$B$h$/%=!\<%9$rDI$C$F$\_$k$HGo;RH4$1$9$k$[$I4JC1$K=$@5$G$-$^$7$?!#e(B  
|re.c e$B$OB\>$K$bF1MM$N=$@5$,I,MW$+$b$7$l$^$;$s$,!“$H$j$”$($:e(B SEGV e$B$O=P$J$/$J$j$^$7$?!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!#\<h$j9~$\_$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![wanabe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/51bf81/32.png) [@wanabe](https://www.ruby-forum.com/u/wanabe)\
**Post date:** [April 4, 2008, 4:25am UTC](https://www.ruby-forum.com/t/file-read-b-o-b-string-include-b-g-bsegv/133497/6 "2008-04-04T04:25:46Z")

</div>

e$B%o%J%Y$G$9!#e(B

e$B$h$/%=!\<%9$rDI$C$F$\_$k$HGo;RH4$1$9$k$[$I4JC1$K=$@5$G$-$^$7$?!#e(B  
re.c e$B$OB\>$K$bF1MM$N=$@5$,I,MW$+$b$7$l$^$;$s$,!"$H$j$"$($:e(B SEGV  
e$B$O=P$J$/$J$j$^$7$?!#e(B

— re.c.orig Tue Apr 1 20:15:20 2008  
+++ re.c Thu Apr 3 19:38:49 2008  
@@ -144,7 +144,7 @@  
for (; x \< xe; ++x)  
qstable[_x] = xe - x;  
/_ Searching \*/

- for (; y \< ye; y += \*(qstable + y[m])) {

- for (; y + m \< ye; y += \*(qstable + y[m])) {  
if (\*xs == \*y && memcmp(xs, y, m) == 0)  
return y - ys;  
}
