Skip to content

Commit d21a715

Browse files
Merge pull request rails#48197 from jonathanhefner/message_pack-signature-non-ascii_only
Handle non-ASCII-only in `AS::MessagePack#signature?`
2 parents a3adc6c + 76ea586 commit d21a715

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

activesupport/lib/active_support/message_pack/serializer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def load(dumped)
2525
end
2626

2727
def signature?(dumped)
28-
dumped.start_with?(SIGNATURE)
28+
dumped.getbyte(0) == SIGNATURE.getbyte(0) && dumped.getbyte(1) == SIGNATURE.getbyte(1)
2929
end
3030

3131
def message_pack_factory

activesupport/test/message_pack/shared_serializer_tests.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ module MessagePackSharedSerializerTests
4141
assert_not serializer.signature?("{}")
4242
end
4343

44+
test "#signature? handles non-ASCII-only non-binary-encoded strings" do
45+
assert serializer.signature?(dump("ümlaut").force_encoding(Encoding::UTF_8))
46+
assert_not serializer.signature?("ümlaut")
47+
end
48+
4449
test "roundtrips Symbol" do
4550
assert_roundtrip :some_symbol
4651
end

0 commit comments

Comments
 (0)