ruby-trunk-changes r50292 - r50313

昨夜 OpenSSL の証明書のドメイン名検証の脆弱性修正を受けて ruby 2.2.2, 2.1.6, 2.0.0-p645 がリリースされました。

https://www.ruby-lang.org/ja/news/2015/04/13/ruby-2-2-2-released/

https://www.ruby-lang.org/ja/news/2015/04/13/ruby-2-1-6-released/

https://www.ruby-lang.org/ja/news/2015/04/13/ruby-2-0-0-p645-released/

実は昨夜の ruby-trunk-changes の更新の時には既に r50292 をコミットしていたのですが、Heroku の API の調子が悪くてリリースアナウンスが公開できなかったので、その前に解説をのせてしまうとまずいかと思って今日にずらしたのでした。

nagachika: r50292 2015-04-13 22:09:18 +0900

拡張ライブラリ openssl でサーバの証明書のチェック時にドメイン名を確認する時のワイルドカードの扱いが RFC 6125 に従っていなかったのでより厳密にチェックするようにしています。 複数の "*" の数や位置などが不正なものを弾くようにしています。この修正を受けて ruby 2.2.2/2.1.6/2.0.0-p645 がリリースされました。 [ruby-core:61545] [Bug #9644]

akr: r50300 2015-04-13 22:46:10 +0900

mkfifo(1) の実行を test/lib/envutil.rb に移動しています。 File.mkfifo メソッドとして定義するようにしています。

akr: r50301 2015-04-14 00:53:25 +0900

r50300 の ChangeLog エントリ の typo 修正。

svn: r50302 2015-04-14 00:53:41 +0900

version.h の日付更新。

zzak: r50303 2015-04-14 09:01:03 +0900

ObjectSpace.count_objects の rdoc 用コメントに :TOTAL キーについての記述とサンプルコードを追記しています。 https://github.com/ruby/ruby/pull/871 [Bug #11067]

nobu: r50304 2015-04-14 11:25:02 +0900

cygwin での initgroups() が宣言されていないため process.c に prototype 宣言を追加しています。

nobu: r50305 2015-04-14 11:25:27 +0900

cygwin でのビルドエラーを修正しています。 utoa() という関数名は cygwin では既に存在しているそうなので関数名を uint_to_str() に改名しています。 [ruby-core:68877] [Bug #11065]

nobu: r50306 2015-04-14 12:31:28 +0900

Symbol を引数に受け撮るメソッドで rb_sym_to_s() で文字列化していたのを rb_sym2str() を使って複製を作らないようにします。 fstring(freeze 済みの String) がかえってくる可能性がありますが、得た文字列を変更しない用途の時は問題ないので余分なオブジェクトの確保を抑制しています。

nobu: r50307 2015-04-14 12:33:00 +0900

Backtrace::Location#base_label の実装でメソッド名の ID を文字列化するのに rb_id2str() を利用するようにしています。こちらも fstring がかえる可能性があるので厳密には仕様が変化していますが。

nobu: r50308 2015-04-14 12:35:18 +0900

標準添付ライブラリ ostruct の OpenStruct#method_missing で、メソッド名の末尾の "=" を削るのに一旦 id2name で文字列化してから削っていたのを Symbol#[] で直接マッチさせて "=" を除いた文字列を得るようにしています。

nobu: r50309 2015-04-14 12:35:54 +0900

拡張ライブラリ tk の get_eval_string_core() で rb_sym2str() が未定義の時のプリプロセッサでの条件分岐を rb_id2str() を利用した代替を事前にマクロ定義しておくように変更しています。

nobu: r50310 2015-04-14 12:36:19 +0900

r50309 の追加修正。 rb_id2str() がない時にも代替をマクロで定義しておくようにしています。

nobu: r50311 2015-04-14 12:36:40 +0900

拡張ライブラリ win32ole でも Symbol を文字列化した後変更しない場合は rb_sym_to_s() のかわりに文字列を複製しない rb_sym2str() を利用するようにしています。

usa: r50313 2015-04-14 16:05:30 +0900

r49826 で tool/merger.rb に追加した teenyup コマンドで TEENY を上げた時も patchlevel をインクリメントするようにしています。