aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorSantiago Pastorino <santiago@wyeworks.com>2016-02-21 21:59:57 -0300
committerSantiago Pastorino <santiago@wyeworks.com>2016-02-21 21:59:57 -0300
commite7bf9f9ab0fc39d91e68a11efc89d8485e36df43 (patch)
tree265f7b2df76ec4d4ecbf96d26863423d78770ec6 /actionpack
parent44888ecbe9d7c42fe2347b876503a1111d02280c (diff)
parente35e19a8b7edd355e76b7114be00dbc750453beb (diff)
downloadrails-e7bf9f9ab0fc39d91e68a11efc89d8485e36df43.tar.gz
rails-e7bf9f9ab0fc39d91e68a11efc89d8485e36df43.tar.bz2
rails-e7bf9f9ab0fc39d91e68a11efc89d8485e36df43.zip
Merge pull request #23682 from ShikChen/fast_strxor
Improve the performance of string xor operation
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_controller/metal/request_forgery_protection.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/request_forgery_protection.rb b/actionpack/lib/action_controller/metal/request_forgery_protection.rb
index 6586985ff5..b2f0b382b9 100644
--- a/actionpack/lib/action_controller/metal/request_forgery_protection.rb
+++ b/actionpack/lib/action_controller/metal/request_forgery_protection.rb
@@ -379,7 +379,8 @@ module ActionController #:nodoc:
def xor_byte_strings(s1, s2)
s2_bytes = s2.bytes
- s1.bytes.map.with_index { |c1, i| c1 ^ s2_bytes[i] }.pack('c*')
+ s1.each_byte.with_index { |c1, i| s2_bytes[i] ^= c1 }
+ s2_bytes.pack('C*')
end
# The form's authenticity parameter. Override to provide your own.