b8524a
From 59ed302965c5e38526ad33b13d8361859c5e7726 Mon Sep 17 00:00:00 2001
b8524a
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
b8524a
Date: Sat, 30 Nov 2013 04:28:15 +0000
b8524a
Subject: [PATCH] siphash.c: fix missing condition
b8524a
b8524a
* siphash.c (sip_hash24): fix for aligned word access little endian
b8524a
  platforms.  [ruby-core:58658] [Bug #9172]
b8524a
b8524a
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
b8524a
---
b8524a
 ChangeLog                | 5 +++++
b8524a
 siphash.c                | 4 ++--
b8524a
 test/ruby/test_string.rb | 2 ++
b8524a
 3 files changed, 9 insertions(+), 2 deletions(-)
b8524a
b8524a
diff --git a/ChangeLog b/ChangeLog
b8524a
index f732f5c..1e803ff 100644
b8524a
--- a/ChangeLog
b8524a
+++ b/ChangeLog
b8524a
@@ -1,3 +1,8 @@
b8524a
+Sat Nov 30 13:28:13 2013  Nobuyoshi Nakada  <nobu@ruby-lang.org>
b8524a
+
b8524a
+ * siphash.c (sip_hash24): fix for aligned word access little endian
b8524a
+   platforms.  [ruby-core:58658] [Bug #9172]
b8524a
+
b8524a
 Fri Apr 22 21:00:44 2016  Tanaka Akira  <akr@fsij.org>
b8524a
b8524a
   * test/ruby/test_time_tz.rb: Tests depends on Europe/Moscow removed
b8524a
 
b8524a
diff --git a/siphash.c b/siphash.c
b8524a
index 2018ade..cd8ba62 100644
b8524a
--- a/siphash.c
b8524a
+++ b/siphash.c
b8524a
@@ -417,7 +417,7 @@ sip_hash24(const uint8_t key[16], const uint8_t *data, size_t len)
b8524a
 	    SIP_2_ROUND(m, v0, v1, v2, v3);
b8524a
         }
b8524a
     }
b8524a
-#elif BYTE_ORDER == BIG_ENDIAN
b8524a
+#else
b8524a
     for (; data != end; data += sizeof(uint64_t)) {
b8524a
 	m = U8TO64_LE(data);
b8524a
 	SIP_2_ROUND(m, v0, v1, v2, v3);
b8524a
@@ -453,7 +453,7 @@ sip_hash24(const uint8_t key[16], const uint8_t *data, size_t len)
b8524a
 	    last.lo |= ((uint32_t *) end)[0];
b8524a
   #endif
b8524a
 	    break;
b8524a
-#elif BYTE_ORDER == BIG_ENDIAN
b8524a
+#else
b8524a
 	    OR_BYTE(3);
b8524a
 #endif
b8524a
 	case 3:
b8524a
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb
b8524a
index 2ff8458..7ce1c06 100644
b8524a
--- a/test/ruby/test_string.rb
b8524a
+++ b/test/ruby/test_string.rb
b8524a
@@ -895,6 +895,8 @@ class TestString < Test::Unit::TestCase
b8524a
     assert(S("hello").hash != S("helLO").hash)
b8524a
     bug4104 = '[ruby-core:33500]'
b8524a
     assert_not_equal(S("a").hash, S("a\0").hash, bug4104)
b8524a
+    bug9172 = '[ruby-core:58658] [Bug #9172]'
b8524a
+    assert_not_equal(S("sub-setter").hash, S("discover").hash, bug9172)
b8524a
   end
b8524a
 
b8524a
   def test_hash_random