ruby-trunk-changes r40299 - r40308

今日は openssl の OpenSSL::SSL::SSLSocket が閉じたソケットへオブジェクトの回収時に書き込もうとして再利用された fd に書き込んでしまう可能性のあった不具合の修正などがありました。

eregon:r40299 2013-04-15 07:38:01 +0900

String#gsub の rdoc コメントの特殊変数名の typo を修正しています。

svn:r40300 2013-04-15 07:38:05 +0900

version.h の日付更新。

eregon:r40301 2013-04-15 07:38:26 +0900

File.fnmatch の rdoc コメントの typo 修正。

naruse:r40302 2013-04-15 10:24:37 +0900

r40287 で追加した depend ファイルのうち r40287 で id.h を $(top_srcdir) にあるものとして記述していたので r40283 と同様に {$(VPATH)} と書いておいて extconf.rb で $VPATH に $(topdir) と $(top_srcdir) を追加しています。

emboss:r40304 2013-04-15 11:04:07 +0900

拡張ライブラリの OpenSSL::SSL::SSLSocket が GC で sweep される時の free 関数で ossl_ssl_shutdown() を実行して、この時すでに対応する fd が閉じられて別の IO のために再利用されていると不正な書き込みをしてしまう不具合を修正しています。free 関数で ossl_ssl_shutdown() を呼ぶのをやめて OpenSSL::SSL::SSLSocket#sysclose で呼び、また SSL 構造体も解放するようにしています。この時既に fd が (というか IO オブジェクトが)close されていないかを確認するようにして、SSLSocket の close 前に元の TCPSocke などが close されていた場合に同様の問題が起きないようにしています。 [ruby-core:54132] [Bug #8240]

knu:r40306 2013-04-15 22:15:17 +0900

misc/ruby-electric.el のリファクタリングです。詳しい内容は省略します。

knu:r40307 2013-04-15 22:15:20 +0900

misc/ruby-electric.el の修正です。 空ハッシュや空文字列の入力を邪魔しないように改善したそうです。 参考URL: https://twitter.com/knu/status/323788390543790081

akr:r40308 2013-04-15 22:22:20 +0900

拡張ライブラリ fiddle にも depend ファイルを追加しています。 r40287 の追加ですね。