From: Dmitriy Vyukov Date: Tue, 9 Apr 2013 01:56:38 +0000 (-0700) Subject: runtime: fix integer overflow in hashmap X-Git-Tag: go1.1rc2~134 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c8b2b725e098bdc85130f2e00ea43c74a4c4346d;p=gostls13.git runtime: fix integer overflow in hashmap The test is problematic, because it requires 8GB+ of RAM. Fixes #5239. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/8550043 --- diff --git a/src/pkg/runtime/hashmap.c b/src/pkg/runtime/hashmap.c index 0f32d94e0f..892f0a1700 100644 --- a/src/pkg/runtime/hashmap.c +++ b/src/pkg/runtime/hashmap.c @@ -451,7 +451,7 @@ hash_grow(MapType *t, Hmap *h) old_buckets = h->buckets; // NOTE: this could be a big malloc, but since we don't need zeroing it is probably fast. if(checkgc) mstats.next_gc = mstats.heap_alloc; - new_buckets = runtime·mallocgc(h->bucketsize << (h->B + 1), 0, 1, 0); + new_buckets = runtime·mallocgc((uintptr)h->bucketsize << (h->B + 1), 0, 1, 0); flags = (h->flags & ~(Iterator | OldIterator)); if((h->flags & Iterator) != 0) { flags |= OldIterator;