summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-27 14:51:08 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-27 14:51:08 +0000
commitc968f908e177e0a216dd6d0a45ee72b19a3b26a0 (patch)
treef192e64172a9589ffb7748fe5b2d4d11df32329c
parent9ee98ff79894e70728c121c2182516883cb613f2 (diff)
* lib/cgi/core.rb: Use Tempfile#close(true) instead of Tempfile#unlink
to close file descriptors. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--lib/cgi/core.rb4
-rw-r--r--test/cgi/test_cgi_multipart.rb6
3 files changed, 10 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 0ee6628..073c7de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue May 27 23:50:07 2014 Tanaka Akira <akr@fsij.org>
+
+ * lib/cgi/core.rb: Use Tempfile#close(true) instead of Tempfile#unlink
+ to close file descriptors.
+
Tue May 27 23:06:46 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (parser_number_literal_suffix): refine error message for
diff --git a/lib/cgi/core.rb b/lib/cgi/core.rb
index 241f817..76b3a24 100644
--- a/lib/cgi/core.rb
+++ b/lib/cgi/core.rb
@@ -550,7 +550,7 @@ class CGI
name = $1 || $2 || ''
if body.original_filename.empty?
value=body.read.dup.force_encoding(@accept_charset)
- body.unlink if defined?(Tempfile) && body.kind_of?(Tempfile)
+ body.close(true) if defined?(Tempfile) && body.kind_of?(Tempfile)
(params[name] ||= []) << value
unless value.valid_encoding?
if @accept_charset_error_block
@@ -578,7 +578,7 @@ class CGI
if tempfiles
tempfiles.each {|t|
if t.path
- t.unlink
+ t.close(true)
end
}
end
diff --git a/test/cgi/test_cgi_multipart.rb b/test/cgi/test_cgi_multipart.rb
index ea40535..627f166 100644
--- a/test/cgi/test_cgi_multipart.rb
+++ b/test/cgi/test_cgi_multipart.rb
@@ -118,7 +118,7 @@ class CGIMultipartTest < Test::Unit::TestCase
$stdin.close() if $stdin.is_a?(Tempfile)
$stdin = STDIN
@tempfiles.each {|t|
- t.unlink
+ t.close(true)
}
end
@@ -179,7 +179,7 @@ class CGIMultipartTest < Test::Unit::TestCase
cgi.params.each {|name, vals|
vals.each {|val|
if val.kind_of?(Tempfile) && val.path
- val.unlink
+ val.close(true)
end
}
}
@@ -330,7 +330,7 @@ class CGIMultipartTest < Test::Unit::TestCase
cgi = RUBY_VERSION>="1.9" ? CGI.new(:accept_charset=>"UTF-8") : CGI.new
assert_equal(cgi['foo'], 'bar')
assert_equal(cgi['file'].read, 'b'*10134)
- cgi['file'].unlink if cgi['file'].kind_of? Tempfile
+ cgi['file'].close(true) if cgi['file'].kind_of? Tempfile
end
def test_cgi_multipart_without_tempfile