ruby-trunk-changes r37145 - r37168

今日は脆弱性対策を含む修正がコミットされており、Ruby 1.9.3-p286 がリリースされました。

http://www.ruby-lang.org/ja/news/2012/10/12/ruby-1-9-3-p286-is-released/

最新版にアップデートすることをおすすめします。

zzak:r37145 2012-10-12 05:26:45 +0900

標準添付ライブラリ timeout の rdoc で渡されたブロックを別の Thread で実行すると記述されていましたが、これは間違いだったのと、実装に依る部分なので不要として削除しています。 [ruby-core:47739] [Bug #7088]

svn:r37146 2012-10-12 05:26:49 +0900

version.h の日付更新。

nobu:r37153 2012-10-12 14:10:43 +0900

mkmf.rb で 64bit 環境のシステムのライブラリパスが lib64 になっている(Linux だとそうですね)ときにも lib のほうにリンクしようとしてしまうので、config (RbConfig::MAKEFILE_CONFIG["libdir"]) を参照して設定されたライブラリディレクトリ名を利用するようにしています。 [ruby-core:43726] [Bug #6207]

usa:r37154 2012-10-12 16:07:10 +0900

バックポート用の tool/merger.rb を --ticket オプションを指定しなくても実行できるように修正しています。

naruse:r37157 2012-10-12 17:19:28 +0900

ioctl のテスト test_ioctl_linux2 をスキップするための条件が間違っていたのを修正しています。まるきり反対になってますね。

nobu:r37163 2012-10-12 18:18:07 +0900

open などファイルパスとして扱う文字列に NUL 文字('\0')が含まれていたら事前にエラーにして実際にファイルを操作する処理に入らないようにしています。
これにより意図しないファイルが生成できてしまう脆弱性対策として入れられた修正で、これはすぐにバックポートされ Ruby 1.9.3-p286 がリリースされています。
またこの他にも Exception#to_s による $SAFE のチェック回避できてしまう脆弱性修正もリリースされています(これは trunk では先週修正済みのものですね。r37068 だそうです)。
http://www.ruby-lang.org/ja/news/2012/10/12/ruby-1-9-3-p286-is-released/

akr:r37166 2012-10-12 20:41:40 +0900

Process.exec/spawn などでシェルのビルトインコマンドを検出してコマンドラインをシェル経由で実行するかどうか判定するようにするために、シェルのビルトインコマンド一覧を持っているのですが、そこに colon というコマンドが登録されていましたが、これは ":" のことだったので修正しています。

shirosaki:r37167 2012-10-12 22:30:11 +0900

Windows 環境で ENV で取得する環境変数Windows locale によって異なる文字列を返すことがある(エンコーディングが違う?)ために、WEBrick のテストでそれに依存したレスポンスボディのチェックが失敗するため、Windows では locale とファイルシステムエンコーディングが異なる時には skip するようにしています。 [ruby-core:47910] [Bug #7140]

shirosaki:r37168 2012-10-12 22:30:17 +0900

mingw-w64 で pow(3) の精度を変更するために _controlfp() という WindowsAPI? を呼び出すようにしています。デフォルトのままだと精度が小さいため TestFloat#test_round_with_precision が失敗していたのだそうです。 [ruby-core:47911] [Bug #7142]