今日は主に Kernel#sprintf の幅指定のオーバーフロー対策や IO::Buffer の不正メモリアクセスの不具合修正などがありました。
[925fa46811] Burdette Lamar 2026-06-07 05:39:34 UTC
doc/file/filename_matching.md に Pathname を使った fnmatch のサンプルも追加しています。
[99d06012e4] Nobuyoshi Nakada 2026-03-25 05:06:14 UTC
sprintf.c の CHECK() という関数マクロ内の処理から expand_result() という関数を切り出すリファクタリング。
[e39475a544] Nobuyoshi Nakada 2026-03-25 05:00:02 UTC
Kernel#sprintf のフォーマット指示子の幅の指定に int の最大値を渡すとオーバーフローが発生し負の値でバッファ計算してしまう不具合があったのを CHECK_WIDTH() という関数マクロを追加して幅指定の範囲をチェックして ArgumentError 例外を発生させるように修正しています。
[2c72ee12e4] Nobuyoshi Nakada 2026-06-07 07:37:10 UTC
GC の mmtk 実装の時に ObjectSpace のテストの test_trace_object_allocations_does_not_reuse_freed_allocation_info というテストメソッドを実行除外するようにしています。
[c022eccde0] Jean Boussier 2026-06-07 08:11:23 UTC
拡張ライブラリ json の内部的なオブジェクトの JSON_Parser_frame_stack_type (これクラスが定義されていないな)を RGenGC の WB-protected なオブジェクトとして flags のビットフラグを立てています。
[c332b80bfe] Jean Boussier 2026-06-07 08:07:27 UTC
拡張ライブラリ json で処理が到達しないことをコンパイラに明示するためのマクロ UNREACHABLE_RETURN を RUBY_DEBUG マクロが真に定義してコンパイルするデバッグビルドでは rb_bug() の呼び出しにすりかえるようにしています。
[4bd3e14fc2] Nobuyoshi Nakada 2026-06-07 07:40:52 UTC
IO::Buffer#and!, IO::Buffer#or!, IO::Buffer#xor! などのメソッドも IO::Buffer#& などと同様にバッファ解放済みの slice について呼ばれた時のチェックを追加しています。