Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

siphash.c: fix missing condition

* siphash.c (sip_hash24): fix for aligned word access little endian
  platforms.  [ruby-core:58658] [Bug #9172]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
commit 59ed302965c5e38526ad33b13d8361859c5e7726 1 parent dacc2c2
@nobu nobu authored
Showing with 9 additions and 2 deletions.
  1. +5 −0 ChangeLog
  2. +2 −2 siphash.c
  3. +2 −0  test/ruby/test_string.rb
View
5 ChangeLog
@@ -1,3 +1,8 @@
+Sat Nov 30 13:28:13 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * siphash.c (sip_hash24): fix for aligned word access little endian
+ platforms. [ruby-core:58658] [Bug #9172]
+
Sat Nov 30 13:21:15 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_eval.c (rb_yield_block): implement non-nil block argument.
View
4 siphash.c
@@ -417,7 +417,7 @@ sip_hash24(const uint8_t key[16], const uint8_t *data, size_t len)
SIP_2_ROUND(m, v0, v1, v2, v3);
}
}
-#elif BYTE_ORDER == BIG_ENDIAN
+#else
for (; data != end; data += sizeof(uint64_t)) {
m = U8TO64_LE(data);
SIP_2_ROUND(m, v0, v1, v2, v3);
@@ -453,7 +453,7 @@ sip_hash24(const uint8_t key[16], const uint8_t *data, size_t len)
last.lo |= ((uint32_t *) end)[0];
#endif
break;
-#elif BYTE_ORDER == BIG_ENDIAN
+#else
OR_BYTE(3);
#endif
case 3:
View
2  test/ruby/test_string.rb
@@ -886,6 +886,8 @@ def test_hash
assert_not_equal(S("hello").hash, S("helLO").hash)
bug4104 = '[ruby-core:33500]'
assert_not_equal(S("a").hash, S("a\0").hash, bug4104)
+ bug9172 = '[ruby-core:58658] [Bug #9172]'
+ assert_not_equal(S("sub-setter").hash, S("discover").hash, bug9172)
end
def test_hash_random
Please sign in to comment.
Something went wrong with that request. Please try again.