eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe sourcefile string modification. [ruby-dev:24373]
evalのline引数に与えたオブジェクトのto_intメソッドでfile引数の文字列を変更するとcore dump。
io.c (io_read): block string buffer modification during rb_io_fread() by freezing it temporarily. [ruby-dev:24366]
IO#read()の第2引数(読み込みバッファ)の値を読み込み中に(スレッドなどで)変更するとcore dump。
io.c (rb_io_s_popen): mode argument may be altered. [ruby-dev:24375]
IO.openのmode引数を(以下同文)。 一時はStringValuePtrで取り出した文字列はどこかでpin downしようかとも思ったが、 結局確実にprotectする方法はないのであきらめた。
file.c (rb_file_s_basename): ext argument may be altered. [ruby-dev:24377]
basenameのext引数を(以下同文)。
enum.c (enum_sort_by): use NODE instead of 2 element arrays. [ruby-dev:24378]
無駄なメモリ割り当てを減らし高速化するためと、 比較中に配列を操作されることによるcore dumpの危険性を無くすため。
string.c (rb_str_chomp_bang): StringValue() may change the receiver. [ruby-dev:24371]
chompのrs引数を(以下同文)。
バグ修正ばかりで機能改善とかに手をつけられないが、 バグレポートがなければ進んでいるかというと、どうだろうか。
そういえば、今日はU-20プログラミングコンテストの発表会・表彰式でもあった。 これにも行きたかったんだよなあ。田舎にいることのデメリットは機動力に劣る(移動にお金がかかる)点だなあ。
吉岡さんが行かれたらしい。
とりあえずなんとか生きてます(汗
今日はいよいよささださんのYARV発表です。
落ち着いてからで構わないんで、レポート希望。
もちろん早ければそれに越したことはないですが(笑)
今月の「るびま」をお楽しみに。速報はJim Weirichのblog(?)を参照してください。非常にまとまっていてわかりやすい。というか、聞いてもわからないので、とても助かってます。