aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/cache/file_store.rb
diff options
context:
space:
mode:
authorCedric Sohrauer <cedric.sohrauer@infopark.de>2015-04-23 15:44:33 +0200
committerCedric Sohrauer <cedric.sohrauer@infopark.de>2015-04-24 15:36:40 +0200
commit2b5a8bc1868aedcd8dcb84c906792207282ae303 (patch)
treed07683a68f6e657e7deba77780523b0ee8e9e89a /activesupport/lib/active_support/cache/file_store.rb
parentb29d794b8cdf59896e668a0f68038dd25228398e (diff)
downloadrails-2b5a8bc1868aedcd8dcb84c906792207282ae303.tar.gz
rails-2b5a8bc1868aedcd8dcb84c906792207282ae303.tar.bz2
rails-2b5a8bc1868aedcd8dcb84c906792207282ae303.zip
when checking for too long cache keys used the uri encoded fname
Diffstat (limited to 'activesupport/lib/active_support/cache/file_store.rb')
-rw-r--r--activesupport/lib/active_support/cache/file_store.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/activesupport/lib/active_support/cache/file_store.rb b/activesupport/lib/active_support/cache/file_store.rb
index e6a8b84214..b7da30123a 100644
--- a/activesupport/lib/active_support/cache/file_store.rb
+++ b/activesupport/lib/active_support/cache/file_store.rb
@@ -119,11 +119,12 @@ module ActiveSupport
# Translate a key into a file path.
def key_file_path(key)
- if key.size > FILEPATH_MAX_SIZE
- key = Digest::MD5.hexdigest(key)
+ fname = URI.encode_www_form_component(key)
+
+ if fname.size > FILEPATH_MAX_SIZE
+ fname = Digest::MD5.hexdigest(key)
end
- fname = URI.encode_www_form_component(key)
hash = Zlib.adler32(fname)
hash, dir_1 = hash.divmod(0x1000)
dir_2 = hash.modulo(0x1000)