From 99f4dec914e7b0a6611e5cf0241cdcdef08e8741 Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Wed, 16 Oct 2024 15:31:58 -0600 Subject: [PATCH 1/2] Fix `float` hash generation It was reading 64-bits when floats are only a 32-bit value, leading to spurious results. --- src/MessagePack/MessagePackSecurity.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MessagePack/MessagePackSecurity.cs b/src/MessagePack/MessagePackSecurity.cs index d8e831816..a2075c11c 100644 --- a/src/MessagePack/MessagePackSecurity.cs +++ b/src/MessagePack/MessagePackSecurity.cs @@ -377,7 +377,7 @@ public override unsafe int GetHashCode(float value) value = float.NaN; } - long l = *(long*)&value; + int l = *(int*)&value; return HashCode.Combine((int)(l >> 32), unchecked((int)l)); } } From c36bbe0e7516e587f50fb1b7e784aaff423c7e00 Mon Sep 17 00:00:00 2001 From: pCYSl5EDgo <31692496+pCYSl5EDgo@users.noreply.github.com> Date: Sat, 25 Dec 2021 09:02:15 +0900 Subject: [PATCH 2/2] Fix cast bug (#1364) --- src/MessagePack/MessagePackSecurity.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MessagePack/MessagePackSecurity.cs b/src/MessagePack/MessagePackSecurity.cs index d8e831816..2bdd9fbf9 100644 --- a/src/MessagePack/MessagePackSecurity.cs +++ b/src/MessagePack/MessagePackSecurity.cs @@ -377,8 +377,8 @@ public override unsafe int GetHashCode(float value) value = float.NaN; } - long l = *(long*)&value; - return HashCode.Combine((int)(l >> 32), unchecked((int)l)); + int l = *(int*)&value; + return l; } }