]> Cypherpunks repositories - gostls13.git/commitdiff
bytes/hash: disable seed test on 32-bit platforms
authorKeith Randall <khr@google.com>
Tue, 3 Sep 2019 17:27:48 +0000 (10:27 -0700)
committerKeith Randall <khr@golang.org>
Tue, 3 Sep 2019 19:37:16 +0000 (19:37 +0000)
The distribution of hash outputs when varying the seed is
not good enough on 32-bit platforms.

This isn't a likely attack vector (the adversary controlling the seed),
so it isn't a huge deal. Would be nice to fix, though. For now, just
skip this test.

Fixes #33988

Change-Id: Icf51ab687fc215422a5492ae78e6f414b33e04cb
Reviewed-on: https://go-review.googlesource.com/c/go/+/193078
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/bytes/hash/smhasher_test.go

index 1b7b44db09ddd016ab10f8e88ecf351c8789e403..f5169ffa27d58cfe459145cb1e60abd24ccb13f0 100644 (file)
@@ -12,6 +12,7 @@ import (
        "runtime"
        "strings"
        "testing"
+       "unsafe"
 )
 
 // Smhasher is a torture test for hash functions.
@@ -450,6 +451,9 @@ func text(t *testing.T, prefix, suffix string) {
 
 // Make sure different seed values generate different hashes.
 func TestSmhasherSeed(t *testing.T) {
+       if unsafe.Sizeof(uintptr(0)) == 4 {
+               t.Skip("32-bit platforms don't have ideal seed-input distributions (see issue 33988)")
+       }
        h := newHashSet()
        const N = 100000
        s := "hello"