From: Dmitriy Vyukov Date: Tue, 19 Aug 2014 07:49:36 +0000 (+0400) Subject: cmd/gc: fix heap buffer overflow X-Git-Tag: go1.4beta1~789 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=53056c37c2e3720666742f516ef148432313e28a;p=gostls13.git cmd/gc: fix heap buffer overflow Fixes #8528. LGTM=rsc R=rsc, r, iant, bradfitz CC=golang-codereviews https://golang.org/cl/128230045 --- diff --git a/src/cmd/gc/bv.c b/src/cmd/gc/bv.c index 0e8f8d4739..cfd1cd2811 100644 --- a/src/cmd/gc/bv.c +++ b/src/cmd/gc/bv.c @@ -108,6 +108,9 @@ bvnext(Bvec *bv, int32 i) { uint32 w; + if(i >= bv->n) + return -1; + // Jump i ahead to next word with bits. if((bv->b[i>>WORDSHIFT]>>(i&WORDMASK)) == 0) { i &= ~WORDMASK; @@ -117,7 +120,7 @@ bvnext(Bvec *bv, int32 i) } if(i >= bv->n) return -1; - + // Find 1 bit. w = bv->b[i>>WORDSHIFT]>>(i&WORDMASK); while((w&1) == 0) {