aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/message_verifier.rb
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2010-06-07 15:44:57 +0200
committerXavier Noria <fxn@hashref.com>2010-06-07 15:44:57 +0200
commit9e065c6bc175621ad30a416c8c4345f95ce3c264 (patch)
tree505df4243727a00d1f030205f2e64afe0d098e5e /activesupport/lib/active_support/message_verifier.rb
parent0dbc732995a526354fb1e3c732af5dacdb863dda (diff)
parent1a8f784a236058101c6e8b6387aefc96e86a1e54 (diff)
downloadrails-9e065c6bc175621ad30a416c8c4345f95ce3c264.tar.gz
rails-9e065c6bc175621ad30a416c8c4345f95ce3c264.tar.bz2
rails-9e065c6bc175621ad30a416c8c4345f95ce3c264.zip
Merge remote branch 'rails/master'
Diffstat (limited to 'activesupport/lib/active_support/message_verifier.rb')
-rw-r--r--activesupport/lib/active_support/message_verifier.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/activesupport/lib/active_support/message_verifier.rb b/activesupport/lib/active_support/message_verifier.rb
index 6c46b68eaf..1031662293 100644
--- a/activesupport/lib/active_support/message_verifier.rb
+++ b/activesupport/lib/active_support/message_verifier.rb
@@ -47,11 +47,11 @@ module ActiveSupport
def secure_compare(a, b)
return false unless a.bytesize == b.bytesize
- l = a.unpack "C#{a.bytesize}"
+ l = a.unpack "C*"
- res = 0
- b.each_byte { |byte| res |= byte ^ l.shift }
- res == 0
+ res = true
+ b.each_byte { |byte| res = (byte == l.shift) && res }
+ res
end
def generate_digest(data)