青山です。

> str == eval(str.dump)が保証されます.

という事で、str の内容がどうであれ、eval しても悪さはしないだろうとい
う事から、dump の直後に untaint し、しかし、eval によって元の str に戻
るわけですから、これが汚染されている可能性には変化は無いわけですから、
あらためて汚染マークを付けておくというのはどうでしょう。

まだ commit はしていませんが、これで良さそうであれば、CGI#param の追加
も含めて commit します。(CGI#param は、join で良さそうみたいですね)


--- cgi.rb.org	Thu Oct 12 01:28:15 2000
+++ cgi.rb	Sat Dec  9 05:36:12 2000
@@ -835,15 +835,15 @@
                 CGI::unescape(filename)
               else
                 filename
-              end.dump
-            }
+              end.dump.untaint
+            }.taint
           end
         END
 
         /Content-Type: (.*)/ni === head
         eval <<-END
           def body.content_type
-            #{($1 or "").dump}
+            #{($1 or "").dump.untaint}.taint
           end
         END
 

-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>