diff options
author | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-08-24 07:59:50 +0000 |
---|---|---|
committer | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-08-24 07:59:50 +0000 |
commit | 73a6f9af6c26d9adcbc6c46e0f2f3793891faa6a (patch) | |
tree | 79aa1bb6b1abb9477576ee6d2c3c1d6330686db8 /lib/cgi/session.rb | |
parent | b9b4a769f11a95ed7fca70d5f2d0620923b36001 (diff) | |
download | ruby-73a6f9af6c26d9adcbc6c46e0f2f3793891faa6a.tar.gz |
* lib/cgi/session.rb (CGI::Session::FileStore#initialize): do not
use a session id as a filename.
* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): ditto.
* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): use
Dir::tmpdir.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/cgi/session.rb')
-rw-r--r-- | lib/cgi/session.rb | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/lib/cgi/session.rb b/lib/cgi/session.rb index a5afb7e3e1..c320ac9c47 100644 --- a/lib/cgi/session.rb +++ b/lib/cgi/session.rb @@ -331,10 +331,6 @@ class CGI # user is responsible for converting other types to Strings when # storing and from Strings when retrieving. class FileStore - def check_id(id) #:nodoc: - /[^0-9a-zA-Z]/ =~ id.to_s ? false : true - end - # Create a new FileStore instance. # # This constructor is used internally by CGI::Session. The @@ -361,10 +357,9 @@ class CGI dir = option['tmpdir'] || Dir::tmpdir prefix = option['prefix'] || '' id = session.session_id - unless check_id(id) - raise ArgumentError, "session_id `%s' is invalid" % id - end - @path = dir+"/"+prefix+id.dup.untaint + require 'digest/md5' + md5 = Digest::MD5.hexdigest(id)[0,16] + @path = dir+"/"+prefix+md5 unless File::exist? @path @hash = {} end |