diff options
Diffstat (limited to 'lib/webrick/httpauth')
-rw-r--r-- | lib/webrick/httpauth/htdigest.rb | 9 | ||||
-rw-r--r-- | lib/webrick/httpauth/htpasswd.rb | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/lib/webrick/httpauth/htdigest.rb b/lib/webrick/httpauth/htdigest.rb index 4b74588c77..5fb0635e2a 100644 --- a/lib/webrick/httpauth/htdigest.rb +++ b/lib/webrick/httpauth/htdigest.rb @@ -70,13 +70,16 @@ module WEBrick def flush(output=nil) output ||= @path - tmp = Tempfile.new("htpasswd", File::dirname(output)) + tmp = Tempfile.create("htpasswd", File::dirname(output)) + renamed = false begin each{|item| tmp.puts(item.join(":")) } tmp.close File::rename(tmp.path, output) - rescue - tmp.close(true) + renamed = true + ensure + tmp.close if !tmp.closed? + File.unlink(tmp.path) if !renamed end end diff --git a/lib/webrick/httpauth/htpasswd.rb b/lib/webrick/httpauth/htpasswd.rb index 205a6db2f0..69b739fbfe 100644 --- a/lib/webrick/httpauth/htpasswd.rb +++ b/lib/webrick/httpauth/htpasswd.rb @@ -75,13 +75,16 @@ module WEBrick def flush(output=nil) output ||= @path - tmp = Tempfile.new("htpasswd", File::dirname(output)) + tmp = Tempfile.create("htpasswd", File::dirname(output)) + renamed = false begin each{|item| tmp.puts(item.join(":")) } tmp.close File::rename(tmp.path, output) - rescue - tmp.close(true) + renamed = true + ensure + tmp.close if !tmp.closed? + File.unlink(tmp.path) if !renamed end end |