Since StringIO#path now returns nil, #local_path definition in cgi.rb no
longer works with StringIO values: CGI.new fails with NoMethodError on
such forms. Following obvious patch addresses this problem:

-------------------------------------------
--- cgi.rb.dpkg-dist    Tue Nov 18 18:48:35 2003
+++ cgi.rb      Tue Nov 18 20:02:36 2003
@@ -1036,7 +1036,7 @@
 
         eval <<-END
           def body.local_path
-            #{body.path.dump}
+            #{(body.class == StringIO)? "" : body.path.dump}
           end
         END
 
-------------------------------------------

This patch does not implement [ruby-talk:84732], so application still
has to be aware of the difference between StringIO and Tempfile if it
uses #local_path. That is deliberate: in the light of [ruby-talk:84727],
I am in favor of deprecating #local_path instead of introducing a major
complexity which would be required to implement automatic upgrading of
StringIO to Tempfile on #local_path call.

-- 
Dmitry Borodaenko