]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/ld: don't allocate unused garbage space in pclntab file table
authorIan Lance Taylor <iant@golang.org>
Wed, 4 Sep 2013 20:26:49 +0000 (13:26 -0700)
committerIan Lance Taylor <iant@golang.org>
Wed, 4 Sep 2013 20:26:49 +0000 (13:26 -0700)
Fixes #6319.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/13539043

src/cmd/ld/data.c
src/cmd/ld/lib.c

index db2ac0f460ee1ddf9d4f84c269f6f03bc0fe9c51..30d7c81856c5088ae4ed155513212fdfe425b770 100644 (file)
@@ -376,6 +376,12 @@ symgrow(Sym *s, int32 siz)
        if(s->np >= siz)
                return;
 
+       if(s->np > s->maxp) {
+               cursym = s;
+               diag("corrupt symbol data: np=%lld > maxp=%lld", (vlong)s->np, (vlong)s->maxp);
+               errorexit();
+       }
+
        if(s->maxp < siz) {
                if(s->maxp == 0)
                        s->maxp = 8;
index c400c622fa441a7fbf38d5d650572612ad73ee67..7639615b48374a5e63ee1938f9783d586d309960 100644 (file)
@@ -2348,7 +2348,6 @@ ftabaddstring(Sym *ftab, char *s)
        start = ftab->np;
        symgrow(ftab, start+n+1);
        strcpy((char*)ftab->p + start, s);
-       ftab->np += n+1;
        return start;
 }