Next 1.8.6 patch release? (was Re: 1.9.1$B$N%j%j!<%9;~4|$K$D$$$F(B)

e$B$3$s$P$s$O!#e(B

1.9.1e$B$N%j%j!<%9$NOC$,=P$F$$$^$9$,!"e(B1.8.6e$B$N%Q%C%A%j%j!<%9$NJ}$Oe(B
e$B$I$&$G$7$g$&$+e(B?

o [ruby-dev:32296] CGI::Session::FileStore e$B$N%G!<%?$,2u$l$ke(B

e$B$H$$$C$?OC$b$"$j$^$7$?$,!"e(B

o NVD - CVE-2007-5770

e$B$H$$$C$?%;%-%e%j%F%#Mm$_$NLdBj$rD>$7$?%j%j!<%9$H$+!"$I$&$G$7$g$&e(B?

e$BKNIt$G$9!#e(B

Takahiro K. wrote:

1.9.1e$B$N%j%j!<%9$NOC$,=P$F$$$^$9$,!"e(B1.8.6e$B$N%Q%C%A%j%j!<%9$NJ}$Oe(B
e$B$I$&$G$7$g$&$+e(B?

e$B<g$K?ME*$J%j%=!<%9$K9)LL$,$D$1$Pe(B12/25e$B$/$i$$$K=P$7$?$$$s$G$9$,!#e(B1.9.1e$B$N$[e(B
e$B$&$,@d;?G3$($5$+$C$F$k$h$&$J$N$G2P>C$K2s$C$?$[$&$,$$$$$h$&$J5$$b$7$^$9!#e(B
e$B$I$s$J$+$s$8$J$s$G$7$g$&e(B>e$B$^$D$b$H$5$s$H$5$5$@$5$se(B

o [ruby-dev:32296] CGI::Session::FileStore e$B$N%G!<%?$,2u$l$ke(B

e$B$3$l$O<!2s$N%j%j!<%9e(B(e$B$$$D$K$J$k$+$O$H$b$+$/e(B)e$B$K$OF~$l$k$D$b$j$G$9!#e(B

o http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-5770

e$B$&!<$s!“$3$N%”%I%P%$%6%j$O@53N$8$c$J$$$J$“!#$3$l$Oe(Btrunke$B$NOC$,:.$6$C$F$ke(B
e$B5$$,$9$k!#e(B
e$B$^$“F1<o$NLdBj$Oe(B1.8e$B7O$K$b$”$k$o$1$G$9$1$I$b!#e(B
ruby_1_8e$B$K$O4{$K=$@5F~$C$F$^$9$,!”$3$l$rC1$K%P%C%/%]!<%H$9$k$N$G$$$$$s$Ge(B
e$B$7$g$&$+e(B?

In message [email protected]
on Sat, 1 Dec 2007 00:18:43 +0900,
Urabe S. [email protected] wrote:

1.9.1e$B$N%j%j!<%9$NOC$,=P$F$$$^$9$,!"e(B1.8.6e$B$N%Q%C%A%j%j!<%9$NJ}$Oe(B
e$B$I$&$G$7$g$&$+e(B?

e$B<g$K?ME*$J%j%=!<%9$K9)LL$,$D$1$Pe(B12/25e$B$/$i$$$K=P$7$?$$$s$G$9$,!#e(B1.9.1e$B$N$[e(B
12e$B7ne(B25e$BF|$G$9$+!“e(Bpkgsrc-2007Q4e$B$K4V$K9g$o$J$=$&!#$^!”$=$l$O$=$l$G2?$H$Ge(B
e$B$b$J$k!"$I$&$G$bNI$$$3$H$J$N$G$9$,!#e(B

e$B$&$,@d;?G3$($5$+$C$F$k$h$&$J$N$G2P>C$K2s$C$?$[$&$,$$$$$h$&$J5$$b$7$^$9!#e(B
e$B$I$s$J$+$s$8$J$s$G$7$g$&e(B>e$B$^$D$b$H$5$s$H$5$5$@$5$se(B
e$BF1$8$/!"$*4j$$$7$^$9!#e(B

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

In message “Re: [ruby-dev:32444] Re: Next 1.8.6 patch release? (was Re:
1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B)”
on Tue, 4 Dec 2007 00:20:37 +0900, Yukihiro M.
[email protected] writes:

|e$B;d$,$"$H9M$($J$1$l$P$$$1$J$$;EMM$H$Oe(B
|
| * encoding validation ([ruby-dev:32433]?)
| * String#encode
| * open with encoding specified (e$B<BAue(B)
| * visiilitye$B$r8+$ke(Bsende$B$NJLL>e(B (invoke_method)
| * 1.8e$B$H$NHs8_49$N:F%A%'%C%/e(B
|
|e$B$/$i$$$G$7$g$&$+!#e(B

e$B$"$H!“e(Bretrye$B$I$&$9$k$+$C$F$N$b9M$($ke(B(e$B7h$a$ke(B)e$BI,MW$,$”$j$^$9$M!#e(B
rescuee$B0J30$G$O$J$/$;$C$F$N$,3$30<BAu<T$N4uK>$i$7$$$G$9!#e(B

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

In message “Re: [ruby-dev:32414] Re: Next 1.8.6 patch release? (was Re:
1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B)”
on Sat, 1 Dec 2007 00:18:43 +0900, Urabe S.
[email protected] writes:

|e$B<g$K?ME*$J%j%=!<%9$K9)LL$,$D$1$Pe(B12/25e$B$/$i$$$K=P$7$?$$$s$G$9$,!#e(B1.9.1e$B$N$[e(B
|e$B$&$,@d;?G3$($5$+$C$F$k$h$&$J$N$G2P>C$K2s$C$?$[$&$,$$$$$h$&$J5$$b$7$^$9!#e(B
|e$B$I$s$J$+$s$8$J$s$G$7$g$&e(B>e$B$^$D$b$H$5$s$H$5$5$@$5$se(B

e$B0l1~!“;d$O;EMM8G$a!”$5$5$@$/$s$H$J$+$@$5$s$O%P%0D>$7!"$H$$$&e(B
e$BJ,C4$N?^<0$O8G$^$C$?$h$&$G$9$+$i!"e(Bissue trackinge$B$r$7$J$$$H$$e(B
e$B$1$J$$$H$$$&46$8$G$7$g$&$+!#e(B

e$B;d$,$"$H9M$($J$1$l$P$$$1$J$$;EMM$H$Oe(B

  • encoding validation ([ruby-dev:32433]?)
  • String#encode
  • open with encoding specified (e$B<BAue(B)
  • visiilitye$B$r8+$ke(Bsende$B$NJLL>e(B (invoke_method)
  • 1.8e$B$H$NHs8_49$N:F%A%'%C%/e(B

e$B$/$i$$$G$7$g$&$+!#e(B

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:32444] Re: Next 1.8.6 patch release? (was Re:
1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B)”
on Dec.04,2007 00:20:37, [email protected] wrote:
| e$B0l1~!“;d$O;EMM8G$a!”$5$5$@$/$s$H$J$+$@$5$s$O%P%0D>$7!"$H$$$&e(B
| e$BJ,C4$N?^<0$O8G$^$C$?$h$&$G$9$+$i!“e(Bissue trackinge$B$r$7$J$$$H$$e(B
| e$B$1$J$$$H$$$&46$8$G$7$g$&$+!#e(B
|
| e$B;d$,$”$H9M$($J$1$l$P$$$1$J$$;EMM$H$Oe(B
|
| * encoding validation ([ruby-dev:32433]?)
| * String#encode
| * open with encoding specified (e$B<BAue(B)
| * visiilitye$B$r8+$ke(Bsende$B$NJLL>e(B (invoke_method)
| * 1.8e$B$H$NHs8_49$N:F%A%'%C%/e(B
|
| e$B$/$i$$$G$7$g$&$+!#e(B

Nkf::nkfe$B$“$k$$$Oe(BIconv::iconve$B$J$I$NJQ497O%i%$%V%i%j$G!“JQ497ke(B
e$B2L$H$7$FF@$?J8;zNs$,e(BASCII-8BITe$B$K$J$k$?$a$K<+NO$Ge(Bforce_encoding
e$B$7$J$$$H;H$$J*$K$J$i$J$$$H$$$&LdBj$,$”$k$s$G$9$,!”$3$l$O$I$&e(B
e$B$J$kM=Dj$G$7$g$&$+e(B?

e$B$=$l$G$O!#e(B

e$B@.@%$G$9!#e(B

e$B$3$C$A$G$bOCBj=P$F$$$?$N$G$9$M!#e(B

U.Nakamura wrote:

Nkf::nkfe$B$"$k$$$Oe(BIconv::iconve$B$J$I$NJQ497O%i%$%V%i%j$G!“JQ497ke(B
e$B2L$H$7$FF@$?J8;zNs$,e(BASCII-8BITe$B$K$J$k$?$a$K<+NO$Ge(Bforce_encoding
e$B$7$J$$$H;H$$J*$K$J$i$J$$$H$$$&LdBj$,$”$k$s$G$9$,!"$3$l$O$I$&e(B
e$B$J$kM=Dj$G$7$g$&$+e(B?

[ruby-dev:32450] e$B$G$b=q$-$^$7$?$,!"$3$C$A$G$b$&>/$7!#e(B

e$BC<E*$K$O%i%$%V%i%jB&$GJ8;zNs$rJV$9D>A0$Ke(B force_encoding
e$B$9$l$P$$$$$@$1$Ne(B
e$BOC$J$N$G$9$,!“IU?o$7$F5/$-$F$/$kLdBj$,e(B2e$B8D$”$j$^$9!#0l$D$Oe(B
[ruby-dev:32451] e$B$K$"$ke(B UTF16 e$B$N$h$&$Ke(B Ruby
e$B$,!&!&!&$H$$$&$+54<V$,BP1~$7e(B
e$B$F$$$J$$%(%s%3!<%G%#%s%0$N>l9g$G!"$b$&0l$D$,e(B CP932
e$B$N$h$&$KId9f2=J}<0$He(B
e$B$7$F$O54<V$,!Je(BShift_JIS
e$B$H$7$F!KBP1~$7$F$$$k$N$@$1$l$I!"JL$NL>A0$,I,MW$Je(B
e$B>l9g!#e(B

e$BA0<T$b8e<T$b!“J8;z%3!<%IJQ49%i%$%V%i%jB&$,e(B reg_enc_replicate
e$B$GJR$C$Q$7e(B
e$B$+$i%(%s%3!<%G%#%s%0$rDj5A$7$F$7$^$($P$H$j$”$($:2r7h$@$H;W$C$F$$$k$N$G$9e(B
e$B$,!"$=$NJ}8~$G$h$$$N$G$9$+$M!#e(BUTF-16 e$B$N$h$&$J%1!<%9$G$Oe(B Ruby
e$B$OJ8;zNs$He(B
e$B$7$F07$($J$$!J$N$G%P%$%HNs07$$$G$"$k!K$N$K!“I=LL>eIaDL$KJQ49$G$-$F$7$^$&e(B
e$B$N$O!”$A$g$C$H0z$C$+$+$k5$$b$9$k$N$G$9$,!"E,@Z$JI=<(J}K!$,!#e(B

e$B@.@%$G$9!#e(B

Nobuyoshi N. wrote:

e$B54<V<+BN$Oe(BUTF-16e$B$K$bBP1~$7$F$$$^$9!#C1$Ke(Brubye$B$K<h$j9~$s$G$$$J$$$@e(B
e$B$1$G$9!#e(B

e$B$"!"3N$+$K$=$&$G$9$M!#e(B

replicatee$B$O!"E,@Z$K<h$j07$($k$o$1$G$O$J$$%(%s%3!<%G%#%s%0$rB>$Ne(B
e$B%(%s%3!<%G%#%s%0$+$i6hJL$9$k$?$a$N!"C1$J$k%W%l!<%9%[%k%@$H;W$C$Fe(B
e$B$/$@$5$$!#e(B

Ruby
e$BB&$,E,@Z$K<h$j07$($k>l9g$G$b!"85$N%(%s%3!<%G%#%s%0L>$rJ];}$9$k$?$ae(B
e$B$K!“e(Balias e$B$G$J$/e(B replicate
e$B$rMQ$$$kI,MW$,$”$k$N$G$O$J$$$+$H$$$&$N$,e(B
CP932 e$B$rNc$K=P$7$?<q;]$G$9!#e(B

e$B6qBNE*$K$O!“e(B
rb_enc_alias(“CP932”, rb_enc_name(ONIG_ENCODING_SJIS));
e$B$N>l9g$G$9$H!“e(B
s = “e$B$”!Ae(B”
s.force_encoding(“CP932”)
s.encoding #=> Encoding:Shift_JIS
e$B$H!”$J$j$^$9$h$M!#$G!"e(B
s2 = s.encode(“UTF-8”) #=> “\u3042\u301C”
s2 = s.encode(“UTF-8”, “Shift_JIS”) #=> “\u3042\u301C”
s2 = s.encode(“UTF-8”, “CP932”) #=> “\u3042\uFF5E”
e$B$3$&$J$C$F$7$^$&$H!#e(B

In article E1IzD5t-0006ih-J4@x31,
Yukihiro M. [email protected] writes:

e$B;d$,$"$H9M$($J$1$l$P$$$1$J$$;EMM$H$Oe(B

  • encoding validation ([ruby-dev:32433]?)

e$B$$$D$4$m9M$($k$N$G$7$g$&$+e(B?

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

At Tue, 4 Dec 2007 21:56:27 +0900,
NARUSE, Yui wrote in [ruby-dev:32456]:

e$BC<E*$K$O%i%$%V%i%jB&$GJ8;zNs$rJV$9D>A0$Ke(B force_encoding e$B$9$l$P$$$$$@$1$Ne(B
e$BOC$J$N$G$9$,!“IU?o$7$F5/$-$F$/$kLdBj$,e(B2e$B8D$”$j$^$9!#0l$D$Oe(B
[ruby-dev:32451] e$B$K$"$ke(B UTF16 e$B$N$h$&$Ke(B Ruby e$B$,!&!&!&$H$$$&$+54<V$,BP1~$7e(B
e$B$F$$$J$$%(%s%3!<%G%#%s%0$N>l9g$G!"$b$&0l$D$,e(B CP932 e$B$N$h$&$KId9f2=J}<0$He(B
e$B$7$F$O54<V$,!Je(BShift_JIS e$B$H$7$F!KBP1~$7$F$$$k$N$@$1$l$I!"JL$NL>A0$,I,MW$Je(B
e$B>l9g!#e(B

e$B54<V<+BN$Oe(BUTF-16e$B$K$bBP1~$7$F$$$^$9!#C1$Ke(Brubye$B$K<h$j9~$s$G$$$J$$$@e(B
e$B$1$G$9!#e(B

e$BA0<T$b8e<T$b!“J8;z%3!<%IJQ49%i%$%V%i%jB&$,e(B reg_enc_replicate e$B$GJR$C$Q$7e(B
e$B$+$i%(%s%3!<%G%#%s%0$rDj5A$7$F$7$^$($P$H$j$”$($:2r7h$@$H;W$C$F$$$k$N$G$9e(B
e$B$,!"$=$NJ}8~$G$h$$$N$G$9$+$M!#e(BUTF-16 e$B$N$h$&$J%1!<%9$G$Oe(B Ruby e$B$OJ8;zNs$He(B
e$B$7$F07$($J$$!J$N$G%P%$%HNs07$$$G$"$k!K$N$K!“I=LL>eIaDL$KJQ49$G$-$F$7$^$&e(B
e$B$N$O!”$A$g$C$H0z$C$+$+$k5$$b$9$k$N$G$9$,!"E,@Z$JI=<(J}K!$,!#e(B

cp932e$B$K$D$$$F$O!"e(Brubye$B$NFbIt%(%s%3!<%G%#%s%0$H$7$F$Oe(BShift_JISe$B$H6he(B
e$BJL$9$k$3$H$O$J$$$N$G$O$J$$$+$H;W$$$^$9!#$7$?$,$C$F!"e(Breplcatee$B$G$Oe(B
e$B$J$/$Fe(Baliase$B$K$J$k$H;W$$$^$9!#e(B

replicatee$B$O!"E,@Z$K<h$j07$($k$o$1$G$O$J$$%(%s%3!<%G%#%s%0$rB>$Ne(B
e$B%(%s%3!<%G%#%s%0$+$i6hJL$9$k$?$a$N!"C1$J$k%W%l!<%9%[%k%@$H;W$C$Fe(B
e$B$/$@$5$$!#e(B

In article [email protected],
“NARUSE, Yui” [email protected] writes:

e$BA0<T$b8e<T$b!“J8;z%3!<%IJQ49%i%$%V%i%jB&$,e(B reg_enc_replicate e$B$GJR$C$Q$7e(B
e$B$+$i%(%s%3!<%G%#%s%0$rDj5A$7$F$7$^$($P$H$j$”$($:2r7h$@$H;W$C$F$$$k$N$G$9e(B
e$B$,!“$=$NJ}8~$G$h$$$N$G$9$+$M!#e(BUTF-16 e$B$N$h$&$J%1!<%9$G$Oe(B Ruby e$B$OJ8;zNs$He(B
e$B$7$F07$($J$$!J$N$G%P%$%HNs07$$$G$”$k!K$N$K!“I=LL>eIaDL$KJQ49$G$-$F$7$^$&e(B
e$B$N$O!”$A$g$C$H0z$C$+$+$k5$$b$9$k$N$G$9$,!"E,@Z$JI=<(J}K!$,!#e(B

e$B$=$&$d$C$FDj5A$7$F$$$/$H!"$$$/$D$/$i$$$K$J$k$s$G$9$+$Me(B?

e$B@.@%$G$9!#e(B

Tanaka A. wrote:

In article [email protected],
“NARUSE, Yui” [email protected] writes:

e$BA0<T$b8e<T$b!“J8;z%3!<%IJQ49%i%$%V%i%jB&$,e(B reg_enc_replicate e$B$GJR$C$Q$7e(B
e$B$+$i%(%s%3!<%G%#%s%0$rDj5A$7$F$7$^$($P$H$j$”$($:2r7h$@$H;W$C$F$$$k$N$G$9e(B
e$B$,!“$=$NJ}8~$G$h$$$N$G$9$+$M!#e(BUTF-16 e$B$N$h$&$J%1!<%9$G$Oe(B Ruby e$B$OJ8;zNs$He(B
e$B$7$F07$($J$$!J$N$G%P%$%HNs07$$$G$”$k!K$N$K!“I=LL>eIaDL$KJQ49$G$-$F$7$^$&e(B
e$B$N$O!”$A$g$C$H0z$C$+$+$k5$$b$9$k$N$G$9$,!"E,@Z$JI=<(J}K!$,!#e(B

e$B$=$&$d$C$FDj5A$7$F$$$/$H!"$$$/$D$/$i$$$K$J$k$s$G$9$+$Me(B?

e$B<j85$Ne(B FreeBSD 6.1 e$B$N>l9g$Oe(B iconv -l|wc -l e$B$Ge(B 132
e$B$K$J$j$^$7$?!#e(B
e$B$^$?!“e(BNetBSD e$B$@$He(B alias e$B4^$a$Fe(B 433
e$B$G$9$,!”<BBN$Oe(B 131 e$B$N$h$&$G$9!#e(B
Linux e$B$@$He(B alias e$B4^$a$Fe(B 962 e$B9T$C$F$$$^$9$,!"e(Bglibc
e$B$Oe(B libiconv e$B$h$j>/$7BPe(B
e$B1~%(%s%3!<%G%#%s%0$,>/$J$+$C$?$H5-21$7$F$$$^$9!#e(B

e$B<B:]LdBj$H$7$F$O!“%(%s%3!<%G%#%s%0MQ$N%$%s%9%?%s%9J];}$N%3%9%H$h$j$b!”$^e(B
e$B$:$I$N%(%s%3!<%G%#%s%0$Ke(B iconv e$B$,BP1~$7$F$$$k$+$rCN$k$N$+$,e(B
libiconv e$B0Je(B
e$B30$G$O:$Fq$J$h$&$G$9!#e(B

e$B$H$j$"$($:e(B NetBSD/Citrus iconv e$B$N>l9g!"e(B

iconv.h e$B$K$"$ke(B __iconv_get_list e$B$G$Oe(B alias

e$B$H<BBN$r6hJL$G$-$J$$$N$G!"e(B

e$B<+J,$G%(%s%3!<%G%#%s%0e(BDBe$B$r8+$K9T$/$J$j$7$J$$$H$@$a$JLOMM!#e(B

e$B$J$N$G!“J8;zNs$r:n$k;~$Ke(B iconv
e$B$,<u$1IU$1$F$+$DL$CN$N%(%s%3!<%G%#%s%0$Ne(B
e$B;~$K!”%(%s%3!<%G%#%s%0%$%s%9%?%s%9$r$=$N>l$G:n$k$N$,$h$5$=$&$+$J!"$H$$$&e(B
e$B$N$,8=:_$N46?($G$9!#e(B

At 19:31 07/12/05, NARUSE, Yui wrote:

e$B$N$O!"$A$g$C$H0z$C$+$+$k5$$b$9$k$N$G$9$,!"E,@Z$JI=<(J}K!$,!#e(B

e$B$=$&$d$C$FDj5A$7$F$$$/$H!"$$$/$D$/$i$$$K$J$k$s$G$9$+$Me(B?

e$B<j85$Ne(B FreeBSD 6.1 e$B$N>l9g$Oe(B iconv -l|wc -l e$B$Ge(B 132 e$B$K$J$j$^$7$?!#e(B
e$B$^$?!“e(BNetBSD e$B$@$He(B alias e$B4^$a$Fe(B 433 e$B$G$9$,!”<BBN$Oe(B 131 e$B$N$h$&$G$9!#e(B
Linux e$B$@$He(B alias e$B4^$a$Fe(B 962 e$B9T$C$F$$$^$9$,!"e(Bglibc e$B$Oe(B libiconv e$B$h$j>/$7BPe(B
e$B1~%(%s%3!<%G%#%s%0$,>/$J$+$C$?$H5-21$7$F$$$^$9!#e(B

e$B$3$A$i$Ne(B Fedora e$B7O$Ne(B linux e$B$G$Oe(B alias e$B$,e(B 1100
e$B$0$i$$$K$J$k!#e(B
e$BF1$8$b$N$r;X$7$F$$$ke(B alias e$B$r0l9T$K$^$H$a$F$$$J$$$N$G4p$Ne(B
e$BJ8;z%3!<%I$O$I$N$0$i$$$+$OJ,$+$j$K$/$$$G$9!#e(B

e$B<j85$Ne(B cygwin e$B$G$OJ8;z%3!<%I$Oe(B 140e$B!“e(Balias e$B$Oe(B 416
e$B$0$i$$$G!”$[$\e(B
e$B>e5-$Ne(B BSD e$B7O$N$b$N$HF1$8$G$9!#e(B

e$B<B:]LdBj$H$7$F$O!“%(%s%3!<%G%#%s%0MQ$N%$%s%9%?%s%9J];}$N%3%9%H$h$j$b!”$^e(B
e$B$:$I$N%(%s%3!<%G%#%s%0$Ke(B iconv e$B$,BP1~$7$F$$$k$+$rCN$k$N$+$,e(B libiconv e$B0Je(B
e$B30$G$O:$Fq$J$h$&$G$9!#e(B

e$B$H$j$"$($:e(B NetBSD/Citrus iconv e$B$N>l9g!"e(B

iconv.h e$B$K$"$ke(B __iconv_get_list e$B$G$Oe(B alias e$B$H<BBN$r6hJL$G$-$J$$$N$G!"e(B

e$B<+J,$G%(%s%3!<%G%#%s%0e(BDBe$B$r8+$K9T$/$J$j$7$J$$$H$@$a$JLOMM!#e(B

e$B$J$N$G!“J8;zNs$r:n$k;~$Ke(B iconv e$B$,<u$1IU$1$F$+$DL$CN$N%(%s%3!<%G%#%s%0$Ne(B
e$B;~$K!”%(%s%3!<%G%#%s%0%$%s%9%?%s%9$r$=$N>l$G:n$k$N$,$h$5$=$&$+$J!"$H$$$&e(B
e$B$N$,8=:_$N46?($G$9!#e(B

e$B:rF|$^$D$b$H$5$s$Ke(B Ruby
e$BFH<+$NJ8;z%3!<%IJQ49$N:G=i$N0F$rAw$j$^$7$?!#e(B
e$B>>K$5$s$+$i$I$&$$$&H?1~$K$J$k$N$+$OJ,$+$j$^$;$s$,!"e(BRuby
e$BFH<+$Ne(B
e$BJQ49%i%$%V%i%j$K$J$k$H0J>e$N0lIt$NLdBj$,$J$/$J$j$^$9!#e(B

e$B59$7$/$*4j$$$7$^$9!#e(B Martin.

#-#-# Martin J. Du"rst, Assoc. Professor, Aoyama Gakuin University
#-#-# http://www.sw.it.aoyama.ac.jp mailto:[email protected]

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

In message “Re: [ruby-dev:32461] Re: Next 1.8.6 patch release? (was Re:
1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B)”
on Wed, 5 Dec 2007 10:51:54 +0900, Tanaka A. [email protected]
writes:

|> e$B;d$,$"$H9M$($J$1$l$P$$$1$J$$;EMM$H$Oe(B
|>
|> * encoding validation ([ruby-dev:32433]?)
|
|e$B$$$D$4$m9M$($k$N$G$7$g$&$+e(B?

e$B$(!<$H!"2~$a$Fe(B[ruby-dev:32433]e$B$r8+$F$$^$7$?$,!“<BAu$K$D$$$Fe(B
e$B$OLdBj$J$5$=$&$J$N$G!”$3$N$^$^%3%
%C%H$7$F$/$@$5$$$^$;$s$+!#e(B

[ruby-dev:32438]e$B$K$D$$$F$Oe(Bvalid_encoding?e$B$H$$$&L>A0$K$D$$$Fe(B
e$B$b$&$A$g$C$H9M$($k$Y$-$J$h$&$J5$$b$7$^$9$,!“$H$j$”$($:$3$l$be(B
e$B%3%_%C%H$7$F$/$@$5$$!#e(B

e$B$J$s$G9M$($k$Y$-$H46$8$k$+$H$$$&$H!“$3$N%A%‘%C%/$C$F7k6I!"JQe(B
e$B$J%P%$%HNs$N%Q%?!<%s$,$J$$$+$I$&$+$r%A%’%C%/$7$F$$$k$o$1$G!“e(B
valide$B$H$$$&$H!”$=$l0J30$K$b%P%$%HNs$N%Q%?!<%s0J30$K$b$A$c$se(B
e$B$H%3!<%I%]%$%s%H$O$9$Y$FCM0h$K4^$^$l$F$$$k$+$H$+$N%A%'%C%/$be(B
e$B4^$`0u>]$,$”$j$=$&$G!"$=$l$,5vMF$G$-$k$+$I$&$+<+?.$,$J$$$+$ie(B
e$B$G$9!#$J$s$H$J$/Bg>fIW$J5$$b$7$^$9$,!#e(B

At 21:56 07/12/04, NARUSE, Yui wrote:

e$BC<E*$K$O%i%$%V%i%jB&$GJ8;zNs$rJV$9D>A0$Ke(B force_encoding e$B$9$l$P$$$$$@$1$Ne(B
e$BOC$J$N$G$9$,!“IU?o$7$F5/$-$F$/$kLdBj$,e(B2e$B8D$”$j$^$9!#0l$D$Oe(B
[ruby-dev:32451] e$B$K$“$ke(B UTF16 e$B$N$h$&$Ke(B Ruby e$B$,!&!&!&$H$$$&$+54<V$,BP1~$7e(B
e$B$F$$$J$$%(%s%3!<%G%#%s%0$N>l9g$G!”$b$&0l$D$,e(B CP932 e$B$N$h$&$KId9f2=J}<0$He(B
e$B$7$F$O54<V$,!Je(BShift_JIS e$B$H$7$F!KBP1~$7$F$$$k$N$@$1$l$I!"JL$NL>A0$,I,MW$Je(B
e$B>l9g!#e(B

e$B544]$G$Oe(B (Unicode e$B0J30$N>l9g$G$O0lIt8BDj$G$9$,e(B)
e$BJ8;z$N<oN`$J$I$be(B
e$B%5%]!<%H$7$F$$$^$9!#%W%m%0%i%^$,!Ve(Bencoding
e$B$O$I$&$G$b$$$$$d!W$N$G$O$J$/!"e(B
e$BE,@Z$Je(B encoding
e$B$r@_Dj$9$k$K$O$3$l$i$N5!G=$r$G$-$k$@$1Ds6!$7$?J}$,$$$$e(B
e$B$H;W$$$^$9!#e(B

e$BA0<T$b8e<T$b!“J8;z%3!<%IJQ49%i%$%V%i%jB&$,e(B reg_enc_replicate e$B$GJR$C$Q$7e(B
e$B$+$i%(%s%3!<%G%#%s%0$rDj5A$7$F$7$^$($P$H$j$”$($:2r7h$@$H;W$C$F$$$k$N$G$9e(B
e$B$,!“$=$NJ}8~$G$h$$$N$G$9$+$M!#e(BUTF-16 e$B$N$h$&$J%1!<%9$G$Oe(B Ruby e$B$OJ8;zNs$He(B
e$B$7$F07$($J$$!J$N$G%P%$%HNs07$$$G$”$k!K$N$K!“I=LL>eIaDL$KJQ49$G$-$F$7$^$&e(B
e$B$N$O!”$A$g$C$H0z$C$+$+$k5$$b$9$k$N$G$9$,!"E,@Z$JI=<(J}K!$,!#e(B

e$B$I$&$7$F$b$I$3$+$GJ8;zNs$+$i%P%$%HNs$K$J$j$^$9!#6KC<$JNc$K$ONc$($Pe(B
e$B05=L$,$“$j$^$9!#e(BUTF-16 e$B$N>l9g$K$3$A$i$G?4G[$J$N$O!”$3$l$re(B
ASCII-8BIT
e$B$K07$&$He(B ASCII-compatible
e$B$H8+$J$5$l$k$H$$$&$3$H$G$9!#e(BASCII-8BIT
e$B$H%P%$%J%j$r6hJL$7$?J}$,$$$$$+$H;W$$$^$9!#e(B

e$B59$7$/!"e(B Martin.

#-#-# Martin J. Du"rst, Assoc. Professor, Aoyama Gakuin University
#-#-# http://www.sw.it.aoyama.ac.jp mailto:[email protected]

In article [email protected],
Urabe S. [email protected] writes:

e$B$He(Bretrye$B$N5sF0$,7h$^$l$Pe(BOKe$B$J$s$G$9$+e(B?e$B$^$D$b$H$5$s0J30$N?M$G$3$NB>$K$J$s$+e(B
e$B5$IU$$$F$k?M$$$^$;$se(B?

e$B<+J,$GAw$C$?$b$N$/$i$$$O$H$j$“$($:$$$&$@$1$$$C$F$*$/$+!”$H;W$Ce(B
e$B$F$5$i$C$F$_$k$H0J2<$N$,$"$j$^$9$M!#e(B

  • [ruby-dev:31819] e$B$J$s$+e(B T_NONE e$B$J$b$N$K%"%/%;%9$7$F$ke(B
  • [ruby-dev:31820] set_trace_func e$B$Ge(B Invalid read of size 4
  • [ruby-dev:32048] require e$B$NF14|LdBje(B
  • [ruby-dev:32214] profile e$B$Ge(B SEGV
  • [ruby-dev:32462] test/ruby/test_fiber.rb e$B$Ge(B GC e$B$K$h$C$F$Oe(B
    SEGV
  • [ruby-dev:31898] ext/dl e$B$N%3%s%Q%$%k$G%a%b$j?)$$$9$.e(B

e$B$"$H$O0J2<$b6=L#?<$$$G$9$M!#e(B

  • [ruby-dev:31989] US-ASCII e$B$+$I$&$+$NH=JLe(B, US-ASCII
  • [ruby-dev:32464] e$B$=$NB>$?$/$5$s$Ne(B encoding
  • [ruby-core:13026] String#inspect e$B$Ge(B \OOO e$B$8$c$J$/$Fe(B \xHH
    e$B$r;H$&e(B
  • [ruby-core:13946] setlocale e$B$7$Fe(B nl_langinfo e$B$r;H$&$+e(B
    ([ruby-core:13329] e$B$be(B)

e$BKNIt$G$9!#e(B

e$B$9$$$^$;$se(BOP25Be$B$NFMGK$K;~4V$,$+$+$C$FJV?.CY$/$J$j$^$7$?e(B

e$B$5$9$,$K$b$&;~4VE*$KL5M}$J$N$Ge(B1.8.6e$B$OG/Fb$K$O=P$;$=$&$K$J$$$G$9e(B…e$B3Z$7$_e(B
e$B$K$7$F$*$i$l$?J}$K$O?=$7Lu$J$$$G$9!#e(B

Yukihiro M. wrote:

e$B0l1~!";d$O;EMM8G$a!"$5$5$@$/$s$H$J$+$@$5$s$O%P%0D>$7!"$H$$$&e(B
e$BJ,C4$N?^<0$O8G$^$C$?$h$&$G$9$+$i!"e(Bissue trackinge$B$r$7$J$$$H$$e(B
e$B$1$J$$$H$$$&46$8$G$7$g$&$+!#e(B

e$B;d$,$"$H9M$($J$1$l$P$$$1$J$$;EMM$H$Oe(B

e$B7k6Ie(Bissue
trackinge$B$H$$$&$+$I$N$X$s$^$GMh$?$i%j%j!<%9$7$F$$$$$3$H$K$9$ke(B
e$B$+$C$FOC$G$9$h$M!#$b$&!"<+?.$r$b$C$F40`z$G$9$C$F$$$&$b$N$OL@$i$+$K4V$K9ge(B
e$B$o$s$N$G!"$I$3$^$G$J$iIT40A4$J>uBV$,5vMF$G$-$k$+$H$$$&OC$K$J$j$=$&$J5$$,e(B
e$B$7$^$9!#e(B

e$B$H$$$&$o$1$G3FO@$G8@$&$H!"e(B

  • e$B$3$l$@$1$O7h$a$F$*$+$J$$$H$$$1$J$$$H$$$&;EMMe(B
  • e$B$3$l$@$1$OD>$7$F$*$+$J$$$H$$$1$J$$$H$$$&%P%0e(B
    e$B$,$"$k46$8$G$7$g$&$+!#;EMM$K$D$$$F$Oe(B[ruby-dev:32438]e$B$OF~$C$?$h$&$J$N$G$"$H$Oe(B
  • String#encode
  • open with encoding specified (e$B<BAue(B)
  • visiilitye$B$r8+$ke(Bsende$B$NJLL>e(B (invoke_method)
  • 1.8e$B$H$NHs8_49$N:F%A%’%C%/e(B

e$B$He(Bretrye$B$N5sF0$,7h$^$l$Pe(BOKe$B$J$s$G$9$+e(B?e$B$^$D$b$H$5$s0J30$N?M$G$3$NB>$K$J$s$+e(B
e$B5$IU$$$F$k?M$$$^$;$se(B?

e$B$"$H8D?ME*$K$OD>$7$F$*$+$J$$$H$$$1$J$$%P%0$N$[$&$b5$$K$J$k$s$G$9$1$I!"$=e(B
e$B$N$X$s$N>pJs$O$J$s$+6&M-$G$-$=$&$J$b$N$O$"$j$^$;$s$+e(B>e$B$5$5$@$5$s!#e(B
e$B$H$j$"$($:e(Btest_knownbug.rbe$B$,DL$l$Pe(BOKe$B$J$s$G$7$g$&$+e(B?

In article [email protected],
Tanaka A. [email protected] writes:

  • [ruby-core:13026] String#inspect e$B$Ge(B \OOO e$B$8$c$J$/$Fe(B \xHH e$B$r;H$&e(B

String#inspect e$B$@$1$8$c$J$/$F!"JR$CC<$+$iJQ$($k$H$3$s$J$H$3e(B
e$B$m$G$9$+$M!#e(B

e$BH4$1$,$"$k$+$b$7$l$^$;$s$,!#e(B

Index: re.c

— re.c (revision 14161)
+++ re.c (working copy)
@@ -259,7 +259,7 @@ rb_reg_expr_str(VALUE str, const char *s
else if (!rb_enc_isspace(c, enc)) {
char b[8];

  • sprintf(b, “\%03o”, c);
  • sprintf(b, “\x%02x”, c);
    rb_str_buf_cat(str, b, 4);
    }
    else {
    Index: regerror.c
    ===================================================================
    — regerror.c (revision 14161)
    +++ regerror.c (working copy)
    @@ -197,7 +197,7 @@ static int to_ascii(OnigEncoding enc, UC
    code = ONIGENC_MBC_TO_CODE(enc, p, end);
    if (code >= 0x80) {
    if (len + 5 <= buf_size) {
  • sprintf((char* )(&(buf[len])), “\%03o”,
  • sprintf((char* )(&(buf[len])), “\x%02x”,
    (unsigned int )(code & 0377));
    len += 5;
    }
    @@ -346,7 +346,7 @@ onig_snprintf_with_pattern(buf, bufsize,
    int blen;

      while (len-- > 0) {
    
  •        sprintf((char* )bs, "\\%03o", *p++ & 0377);
    
  •        sprintf((char* )bs, "\\x%02x", *p++ & 0377);
           blen = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs);
           bp = bs;
           while (blen-- > 0) *s++ = *bp++;
    

@@ -355,7 +355,7 @@ onig_snprintf_with_pattern(buf, bufsize,
}
else if (!ONIGENC_IS_CODE_PRINT(enc, *p) &&
!ONIGENC_IS_CODE_SPACE(enc, *p)) {

  • sprintf((char* )bs, “\%03o”, *p++ & 0377);
  • sprintf((char* )bs, “\x%02x”, *p++ & 0377);
    len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs);
    bp = bs;
    while (len-- > 0) *s++ = *bp++;
    Index: string.c
    ===================================================================
    — string.c (revision 14161)
    +++ string.c (working copy)
    @@ -2971,7 +2971,7 @@ rb_str_inspect(VALUE str)
    escape_codepoint:
    for (q = p-n; q < p; q++) {
    s = buf;
  •            sprintf(buf, "\\%03o", *q & 0377);
    
  •            sprintf(buf, "\\x%02x", *q & 0377);
               while (*s) {
                   str_cat_char(result, *s++, enc);
               }
    

@@ -3083,7 +3083,7 @@ rb_str_dump(VALUE str)
}
else {
*q++ = ‘\’;

  •  sprintf(q, "%03o", c&0xff);
    
  •  sprintf(q, "x%02x", c&0xff);
     q += 3;
    

    }
    }
    Index: parse.y
    ===================================================================
    — parse.y (revision 14161)
    +++ parse.y (working copy)
    @@ -7094,7 +7094,7 @@ parser_yylex(struct parser_params *parse

     default:
    

    if (!parser_is_identchar()) {

  •  rb_compile_error(PARSER_ARG  "Invalid char `\\%03o' in 
    

expression", c);

  •  rb_compile_error(PARSER_ARG  "Invalid char `\\x%02x' in 
    

expression", c);
goto retry;
}

Index: ruby.c

— ruby.c (revision 14161)
+++ ruby.c (working copy)
@@ -863,7 +863,7 @@ proc_options(int argc, char **argv, stru
}
else {
rb_raise(rb_eRuntimeError,

  •  "invalid option -\\%03o  (-h will show valid options)",
    
  •  "invalid option -\\x%02x  (-h will show valid options)",
                       (int)(unsigned char)*s);
    

    }
    }
    Index: test/ruby/test_regexp.rb
    ===================================================================
    — test/ruby/test_regexp.rb (revision 14161)
    +++ test/ruby/test_regexp.rb (working copy)
    @@ -35,7 +35,7 @@ class TestRegexp < Test::Unit::TestCase
    end

    def test_to_s

  • assert_equal ‘(?-mix:\000)’, Regexp.new(“\0”).to_s
  • assert_equal ‘(?-mix:\x00)’, Regexp.new(“\0”).to_s
    end

def test_union
Index: test/ruby/test_string.rb

— test/ruby/test_string.rb (revision 14161)
+++ test/ruby/test_string.rb (working copy)
@@ -444,7 +444,7 @@ class TestString < Test::Unit::TestCase

def test_dump
a= S(“Test”) << 1 << 2 << 3 << 9 << 13 << 10

  • assert_equal(S(‘“Test\001\002\003\t\r\n”’), a.dump)
  • assert_equal(S(‘“Test\x01\x02\x03\t\r\n”’), a.dump)
    end

def test_dup
Index: file.c

— file.c (revision 14161)
+++ file.c (working copy)
@@ -3486,7 +3486,7 @@ rb_f_test(int argc, VALUE *argv)
rb_raise(rb_eArgError, “unknown command ?%c”, cmd);
}
else {

  • rb_raise(rb_eArgError, “unknown command ?\%03o”, cmd);
  • rb_raise(rb_eArgError, “unknown command ?\x%02x”, cmd);
    }
    return Qnil; /* not reached */
    }

e$BEDCf$5$s!"$3$s$K$A$O!#e(B

e$B0JA0e(B ruby-core e$B$K=P$7$?%Q%C%A$h$j$:$$$V$s?'!9=&$$$^$7$Fe(B
e$B@?$K$“$j$,$H$&$4$6$$$^$9!#e(B
e$B0l$D$@$15$$K$J$C$F$$$k$3$H$,$”$j$^$9!#==O;?J?t$Ne(B a-f
e$B$r;H$&$+!"e(BA-F e$B$re(B
e$B;H$&$+$H$$$&$3$H$G$9!#EDCf$5$s$OA4It>.J8;z$K$7$^$7$?$,!“e(B\xHH
e$B$r8+$k$He(B
HH e$B$OBgJ8;z$G$9!#8D?ME*$K$OBgJ8;z$O>.J8;z$Ne(B x
e$B$N8e$K8+$d$9$$$H;W$C$Fe(B
e$B$$$^$9$,!”$$$+$,$G$7$g$&$+!#e(B

e$B8e$Oe(B

  •        sprintf((char* )bs, "\\%03o", *p++ & 0377);
    
  •        sprintf((char* )bs, "\\x%02x", *p++ & 0377);
    

e$B$N$h$&$J$H$3$m$K$D$$$G$KDj?t$be(B16e$B?J?t$K$7$?$i$I$&$G$7$g$&$+e(B:

  •        sprintf((char* )bs, "\\x%02x", *p++ & 0377);
    
  •        sprintf((char* )bs, "\\x%02x", *p++ & 0xFF);
    

e$B%k%SA4BN$G$3$l$rD>$9I,MW$OL5$$$+$H;W$$$^$9$,!"NY$j9g$C$F$$$k$H$3$m$Oe(B
e$B$A$g$C$H$@$15$$K$J$C$F$7$^$$$^$7$?!#e(B

e$B59$7$/$*4j$$$7$^$9!#e(B Martin.

At 00:28 07/12/10, Tanaka A. wrote:

Index: re.c
}

  •    sprintf((char* )(&(buf[len])), "\\x%02x",
          bp = bs;
    

Index: string.c
str_cat_char(result, *s++, enc);
Index: parse.y
}

  •                  "invalid option -\\x%02x  (-h will show valid options)",
    
    def test_to_s

+++ file.c (working copy)
[e$BEDCfe(B e$BE/e(B][e$B$?$J$+e(B e$B$"$-$ie(B][Tanaka A.]
#-#-# Martin J. Du"rst, Assoc. Professor, Aoyama Gakuin University
#-#-# http://www.sw.it.aoyama.ac.jp mailto:[email protected]

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

In message “Re: [ruby-dev:32495] \xHH”
on Mon, 10 Dec 2007 00:28:58 +0900, Tanaka A. [email protected]
writes:
|
|In article [email protected],
| Tanaka A. [email protected] writes:
|
|> * [ruby-core:13026] String#inspect e$B$Ge(B \OOO e$B$8$c$J$/$Fe(B \xHH e$B$r;H$&e(B
|
|String#inspect e$B$@$1$8$c$J$/$F!“JR$CC<$+$iJQ$($k$H$3$s$J$H$3e(B
|e$B$m$G$9$+$M!#e(B
|
|e$BH4$1$,$”$k$+$b$7$l$^$;$s$,!#e(B

e$B$3$l$b%3%_%C%H$7$F$/$@$5$$!#e(B