]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.4] runtime: hashmap: move overflow pointer to end of bucket
authorKeith Randall <khr@golang.org>
Sat, 20 Dec 2014 04:44:18 +0000 (20:44 -0800)
committerRuss Cox <rsc@golang.org>
Wed, 14 Jan 2015 05:42:05 +0000 (05:42 +0000)
commit6609baf2f7ab0500275789440df9550a2725fc7e
tree090f3d1441c67c89f20a0f038924f7959c559168
parent957ed90d0eced2c5dbe39eb49926795b87a126f3
[release-branch.go1.4] runtime: hashmap: move overflow pointer to end of bucket

Pointers to zero-sized values may end up pointing to the next
object in memory, and possibly off the end of a span.  This
can cause memory leaks and/or confuse the garbage collector.

By putting the overflow pointer at the end of the bucket, we
make sure that pointers to any zero-sized keys or values don't
accidentally point to the next object in memory.

fixes #9384

Change-Id: I5d434df176984cb0210b4d0195dd106d6eb28f73
Reviewed-on: https://go-review.googlesource.com/1869
Reviewed-by: Russ Cox <rsc@golang.org>
(cherry picked from commit fbc56cf05015899aba236d5a68096a770de3ad0a)
Reviewed-on: https://go-review.googlesource.com/2801
Reviewed-by: Andrew Gerrand <adg@golang.org>
src/cmd/gc/reflect.c
src/cmd/ld/dwarf.c
src/reflect/type.go
src/runtime/hashmap.go
src/runtime/hashmap_fast.go