Tietew です。

On Thu, 5 Jul 2001 20:41:26 +0900
In article <20010705201815.2746.TIETEW / tietew.net>
Subject: [ruby-dev:13754] Kconv(NKF) with tainted strings
Tietew <tietew / tietew.net> wrote:

> Kconv(NKF) が汚染を取り除いてしまうようですが,これはまずくないです
> か?
 :
> eRuby で ($SAFE=1) Net::HTTP でとってきた文字列を Kconv にかけて 
> eval しても SecurityError にならないのでおかしいなと思って調べたら,

やっぱりならないのでおかしいと思ったら,String#each_line もみたいで
す。


Index: string.c
===================================================================
RCS file: /src/ruby/string.c,v
retrieving revision 1.50.2.9
diff -u -2 -r1.50.2.9 string.c
--- string.c	2001/05/25 15:01:06	1.50.2.9
+++ string.c	2001/07/05 13:29:58
@@ -2332,4 +2332,5 @@
 	     rb_memcmp(RSTRING(rs)->ptr, p-rslen, rslen) == 0)) {
 	    line = rb_str_new(s, p - s);
+	    OBJ_INFECT(line, str);
 	    rb_yield(line);
 	    if (RSTRING(str)->ptr != ptr || RSTRING(str)->len != len)
Index: ext/nkf/nkf.c
===================================================================
RCS file: /src/ruby/ext/nkf/nkf.c,v
retrieving revision 1.5
diff -u -2 -r1.5 nkf.c
--- ext/nkf/nkf.c	1999/10/20 07:10:23	1.5
+++ ext/nkf/nkf.c	2001/07/05 13:29:58
@@ -81,4 +81,5 @@
   RSTRING(dst)->ptr[output_ctr] = '\0';
   RSTRING(dst)->len = output_ctr;
+  OBJ_INFECT(dst, src);
 
   return dst;



―[ Tietew ]――――――――――――――――――――――――――――
 メ : tietew / tietew.net / tietew / raug.net / tietew / masuclub.net
ホペ: http://www.tietew.net/     Tietew Windows Lab.
      http://www.masuclub.net/   鱒倶楽部
指紋: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA