From: nobu.nakada@... Date: 2002-02-05T02:20:03+09:00 Subject: [ruby-dev:15852] Re: possible buffer overrun & pathname validation なかだです。 At Tue, 5 Feb 2002 01:07:46 +0900, matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > |rb_file_s_expand_path()を見直してみたら、まだバッファオーバーラ > |ンの可能性がありそうです。条件を指定するというのがどちらかとい > |うと間違いやすいような気がするので、BUFCHECK()は長さを指定する > |ようにしたほうがいいんじゃないかと思うのですが。 > > BUFRESIZE()ってのはあんまり好きな名前じゃないです。実際に > RESIZEするかどうか分からないという点で。 あー、たしかに。 > こちらで直しても構いませんから、バッファオーバーランの可能性 > について教えてもらえませんか? これは勘違いでした。このあたりですが、rb_str_resize()だからNUL の分は追加されるんですよね。 BUFCHECK (strlen(dir) > buflen); 逆にこの辺は1バイト余分に取ってるのかと思ったらそうでもないし、 なんか非常にややこしい。 while (*s && isdirsep(*s)) { *p++ = '/'; BUFCHECK (p >= pend); s++; } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦