aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/map_test.go
diff options
context:
space:
mode:
authorFilip Gruszczynski <gruszczy@gmail.com>2017-04-15 15:17:29 -0700
committerBrad Fitzpatrick <bradfitz@golang.org>2017-05-02 20:51:39 +0000
commitf9531448b8abf7bb3c2702761bd8792a3bef33a0 (patch)
tree6476b596aca0c943b1f6fd2456f48c6b5a81fc0b /src/runtime/map_test.go
parent9f6fde3a23c7d40eb625ad3a58a6b1ad4e33265a (diff)
downloadgo-f9531448b8abf7bb3c2702761bd8792a3bef33a0.tar.gz
go-f9531448b8abf7bb3c2702761bd8792a3bef33a0.zip
runtime: don't panic for bad size hint in hashmap
Because the hint parameter is supposed to be treated purely as a hint, if it doesn't meet the requirements we disregard it and continue as if there was no hint at all. Fixes #19926 Change-Id: I86e7f99472fad6b99ba4e2fd33e4a9e55d55115e Reviewed-on: https://go-review.googlesource.com/40854 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/runtime/map_test.go')
-rw-r--r--src/runtime/map_test.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/runtime/map_test.go b/src/runtime/map_test.go
index 45d14126c2..81f05a0613 100644
--- a/src/runtime/map_test.go
+++ b/src/runtime/map_test.go
@@ -588,6 +588,14 @@ func TestMapLargeValNoPointer(t *testing.T) {
}
}
+// Test that making a map with a large or invalid hint
+// doesn't panic. (Issue 19926).
+func TestIgnoreBogusMapHint(t *testing.T) {
+ for _, hint := range []int64{-1, 1 << 62} {
+ _ = make(map[int]int, hint)
+ }
+}
+
func benchmarkMapPop(b *testing.B, n int) {
m := map[int]int{}
for i := 0; i < b.N; i++ {