mput です。
On 2003.04.30, at 22:51, Junichiro Kita wrote:
> ruby の HEAD をおいかけてないので分からないのですが,もしかして汚染され
> るオブジェクトに変更があったということでしょうか?
File::readlink は以下のようになってるんですが、
static VALUE
rb_file_s_readlink(klass, path)
VALUE klass, path;
{
#ifdef HAVE_READLINK
char *buf;
int size = 100;
int rv;
VALUE v;
SafeStringValue(path);
buf = xmalloc(size);
if ((rv = readlink(RSTRING(path)->ptr, buf, size)) == size) {
size *= 2;
buf = xrealloc(buf, size);
}
if (rv < 0) {
free(buf);
rb_sys_fail(RSTRING(path)->ptr);
}
v = rb_tainted_str_new(buf, rv);
free(buf);
return v;
#else
rb_notimplement();
return Qnil; /* not reached */
#endif
}
rb_tainted_str_new で最初から汚染されているようです。
# symlink の先は問答無用で信用ならないって事でしょうかね。
この変更が一時的なものなのかはちょっと分かりません (cvs log からは検索
できませんでした)。
--
mput @ OTSUKARESAMA.
mailto:root@mput.dip.jp
http://mput.dip.jp
|