1
0
mirror of https://github.com/golang/go synced 2024-11-23 20:10:08 -07:00
The Go programming language
Go to file
Dmitriy Vyukov 8c2fefe89c cmd/gc: fix out of bounds access
AddressSanitizer says:

AddressSanitizer: heap-buffer-overflow on address 0x60200001b6f3
READ of size 6 at 0x60200001b6f3 thread T0
    #0 0x46741b in __interceptor_memcmp asan_interceptors.cc:337
    #1 0x4b5794 in compile src/cmd/6g/../gc/pgen.c:177
    #2 0x509b81 in funccompile src/cmd/gc/dcl.c:1457
    #3 0x520fe2 in p9main src/cmd/gc/lex.c:489
    #4 0x5e2e01 in main src/lib9/main.c:57
    #5 0x7fab81f7976c in __libc_start_main /build/buildd/eglibc-2.15/csu/libc-start.c:226
    #6 0x4b16dc in _start (pkg/tool/linux_amd64/6g+0x4b16dc)

0x60200001b6f3 is located 0 bytes to the right of 3-byte region [0x60200001b6f0,0x60200001b6f3)
allocated by thread T0 here:
    #0 0x493ec8 in __interceptor_malloc asan_malloc_linux.cc:75
    #1 0x54d64e in mal src/cmd/gc/subr.c:459
    #2 0x5260d5 in yylex src/cmd/gc/lex.c:1605
    #3 0x52078f in p9main src/cmd/gc/lex.c:402
    #4 0x5e2e01 in main src/lib9/main.c:57

If the memory block happens to be at the end of hunk and page bounadry,
this out-of-bounds can lead to a crash.

LGTM=dave, iant
R=golang-codereviews, dave, iant
CC=golang-codereviews
https://golang.org/cl/93370043
2014-05-14 19:24:00 +04:00
api api: update next.txt 2014-04-01 13:14:45 -04:00
doc cmd/go: link SWIG objects directly rather than using a shared library 2014-05-12 12:43:51 -07:00
include include/plan9: make mklibc.rc compatible with 9atom 2014-04-19 09:55:09 +02:00
lib lib/time: update time zone info to v.2014b 2014-04-29 21:41:54 -04:00
misc cmd/cgo: omit misaligned struct fields, like we omit bitfields 2014-05-12 23:48:20 -04:00
src cmd/gc: fix out of bounds access 2014-05-14 19:24:00 +04:00
test cmd/gc: fix liveness vs regopt mismatch for input variables 2014-05-12 17:19:02 -04:00
.hgignore lib9: enable on Plan 9 2014-02-13 20:06:41 +01:00
.hgtags tag go1.2.2 2014-05-05 10:45:56 -07:00
AUTHORS A+C: Jason Del Ponte (individual CLA) 2014-05-12 23:34:27 -04:00
CONTRIBUTORS A+C: Jason Del Ponte (individual CLA) 2014-05-12 23:34:27 -04:00
favicon.ico godoc: update favicon 2012-10-11 17:02:36 +11:00
LICENSE
PATENTS
README README: Fix installation instructions 2013-11-20 13:47:37 -08:00
robots.txt

This is the source code repository for the Go programming language.  

For documentation about how to install and use Go,
visit http://golang.org/ or load doc/install-source.html
in your web browser.

After installing Go, you can view a nicely formatted
doc/install-source.html by running godoc --http=:6060
and then visiting http://localhost:6060/doc/install/source.

Unless otherwise noted, the Go source files are distributed
under the BSD-style license found in the LICENSE file.

--

Binary Distribution Notes

If you have just untarred a binary Go distribution, you need to set
the environment variable $GOROOT to the full path of the go
directory (the one containing this README).  You can omit the
variable if you unpack it into /usr/local/go, or if you rebuild
from sources by running all.bash (see doc/install.html).
You should also add the Go binary directory $GOROOT/bin
to your shell's path.

For example, if you extracted the tar file into $HOME/go, you might
put the following in your .profile:

    export GOROOT=$HOME/go
    export PATH=$PATH:$GOROOT/bin

See doc/install.html for more details.