From 225d41dce2f3e17ad3ff50b1a9c2e2206425ed20 Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Sun, 30 Aug 2026 02:14:59 +0200 Subject: [PATCH] Use byte size when padding encrypted sessions --- lib/rack/session/encryptor.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rack/session/encryptor.rb b/lib/rack/session/encryptor.rb index acbe128..dfd037b 100644 --- a/lib/rack/session/encryptor.rb +++ b/lib/rack/session/encryptor.rb @@ -34,7 +34,7 @@ def serialize_payload(message) return "#{[0].pack('v')}#{serialized_data.force_encoding(Encoding::BINARY)}" if @options[:pad_size].nil? - padding_bytes = @options[:pad_size] - (2 + serialized_data.size) % @options[:pad_size] + padding_bytes = @options[:pad_size] - (2 + serialized_data.bytesize) % @options[:pad_size] padding_data = SecureRandom.random_bytes(padding_bytes) "#{[padding_bytes].pack('v')}#{padding_data}#{serialized_data.force_encoding(Encoding::BINARY)}"