From: Wei Guangjing Date: Thu, 27 Jan 2011 13:26:28 +0000 (-0500) Subject: 8l: fix ldpe sym name length == 8 strdup incorrect. X-Git-Tag: weekly.2011-02-01~60 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=354219951e93ededd1cfc812af7be8a328d5c9c4;p=gostls13.git 8l: fix ldpe sym name length == 8 strdup incorrect. R=rsc CC=golang-dev https://golang.org/cl/4102043 --- diff --git a/src/cmd/ld/ldpe.c b/src/cmd/ld/ldpe.c index 66b122bb33..d8b0a6fc23 100644 --- a/src/cmd/ld/ldpe.c +++ b/src/cmd/ld/ldpe.c @@ -170,8 +170,10 @@ ldpe(Biobuf *f, char *pkg, int64 len, char *pn) (symbuf[2] == 0) && (symbuf[3] == 0)) { l = le32(&symbuf[4]); obj->pesym[i].name = (char*)&obj->snames[l]; - } else { - obj->pesym[i].name = strdup((char*)symbuf); + } else { // sym name length <= 8 + obj->pesym[i].name = mal(9); + strncpy(obj->pesym[i].name, (char*)symbuf, 8); + obj->pesym[i].name[8] = 0; } obj->pesym[i].value = le32(&symbuf[8]); obj->pesym[i].sectnum = le16(&symbuf[12]);