ruby-trunk-changes 2024-06-28

今日は主に Encoding#names や Encoding#name_list の返す文字列が不正なメモリアクセスを起こす場合がある不具合の修正、bundler と rubygems の修正や拡張ライブラリ openssl の ASN1 の実装の一部を ruby 化する変更などがありました。

[d29a76b90b] David Rodríguez 2024-06-25 12:24:09 UTC

bundler で rubygems の installer の挙動を上書きする Bundler::RubyGemsGemInstaller の pre_install_checks というメソッドを再定義するのを rubygems のバージョンをチェックして必要な時だけにしています。

[f88bb0e67d] David Rodríguez 2024-06-27 11:17:55 UTC

bundler のテストの spec 名の修正。

[815b345b41] David Rodríguez 2024-06-25 12:34:39 UTC

bundler の rubygems の installer を上書きする Bundler::RubygemsGemInstaller で ensure_writable_dir メソッドを再定義して権限関係の例外 Gem::FilePermissionError を無視させるようにしています。

[c6a0d03649] Peter Zhu 2024-06-26 20:12:53 UTC

Encoding の Encoding#names が返す Encoding 名の fstring が解放されるバッファを参照してしまう可能性があった不具合を修正しています。 [ruby-core:118391] [Bug #20595]

[9c5e9d29f0] HoneyryderChuck 2024-04-16 17:07:56 UTC

拡張ライブラリ openssl の OpenSSL::ASN1 の一部の class や module の実装を C から ruby 実装に移植しているようです。

[176c4bb3c7] Peter Zhu 2024-06-27 18:02:49 UTC

c6a0d03649c686a537c1f513a1e32205ac6a6512 と同様に Encoding#name_list が返す配列に格納する fstring も解放されたメモリ領域をバッファとして参照してしまう可能性があったので修正しています。 [ruby-core:118399] [Bug #20598]

[5f8375381b] David Rodriguez 2024-02-02 20:15:26 UTC

bundler のテスト用のヘルパーでテスト用の gem のビルドが並列テスト時に同じ gem を同時にビルドしてしまうのを避けるため並列化前に? 事前にビルドするようにしているようです。 Windows 環境で同じファイルを操作しようとしてエラーになってしまうためとのこと。

[f41a2c96c3] David Rodríguez 2024-05-23 09:57:25 UTC

rubygems の Gem.open_file でブロックを File.open メソッドに委譲するのにブロック引数渡しを使うようにしています。

[091a6ea8c1] David Rodríguez 2024-05-23 10:01:11 UTC

rubygems の Gem.open_file で File#flock を使うかどうかの分岐部分を open_file_with_flock と open_file_without_flock という別のメソッドに切り出すリファクタリング

[5c826ebea5] David Rodríguez 2024-06-26 14:47:06 UTC

091a6ea8c1005f5bfc24839da3da0e37251b15d1 で切り出した rubygems の Gem.open_file_with_flock の実装の位置を移動しています。コミットログによると binstub から呼ばれないように? ということみたいですがよくわからず。