aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/message_verifier.rb
diff options
context:
space:
mode:
authorVipul A M <vipulnsward@gmail.com>2013-05-15 19:41:04 +0530
committerVipul A M <vipulnsward@gmail.com>2013-05-16 02:19:33 +0530
commita4e1e5d6329f31cb5a1ee7561fdf05dd5559ef7c (patch)
tree8e47e157ca57bb7dd6c6337fa754df20e2bf79c0 /activesupport/lib/active_support/message_verifier.rb
parentdd03f10d5258dab75da6b7ec493e6558b4ed2bac (diff)
downloadrails-a4e1e5d6329f31cb5a1ee7561fdf05dd5559ef7c.tar.gz
rails-a4e1e5d6329f31cb5a1ee7561fdf05dd5559ef7c.tar.bz2
rails-a4e1e5d6329f31cb5a1ee7561fdf05dd5559ef7c.zip
Use `Base.strict_decode64` instead of `Base.decode64` just as we do in encoding;
Also reduce extra object allocation by creating string directly instead of join on Array
Diffstat (limited to 'activesupport/lib/active_support/message_verifier.rb')
-rw-r--r--activesupport/lib/active_support/message_verifier.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/message_verifier.rb b/activesupport/lib/active_support/message_verifier.rb
index e0cd92ae3c..a35d5980fe 100644
--- a/activesupport/lib/active_support/message_verifier.rb
+++ b/activesupport/lib/active_support/message_verifier.rb
@@ -37,7 +37,11 @@ module ActiveSupport
data, digest = signed_message.split("--")
if data.present? && digest.present? && secure_compare(digest, generate_digest(data))
- @serializer.load(::Base64.decode64(data))
+ begin
+ @serializer.load(::Base64.strict_decode64(data))
+ rescue ArgumentError
+ raise InvalidSignature
+ end
else
raise InvalidSignature
end