Commit 5c0d782a authored by Rob Pike's avatar Rob Pike

cmd/ld: another attempt at the relocation overflow fix

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/9036046
parent 700a126c
......@@ -259,9 +259,12 @@ relocsym(Sym *s)
cursym = s;
diag("bad reloc size %#ux for %s", siz, r->sym->name);
case 4:
if((r->type == D_PCREL && o != (int32)o) || (r->type != D_PCREL && o != (uint32)o)) {
cursym = S;
diag("relocation address is too big: %#llx", o);
if(r->type == D_PCREL) {
if(o != (int32)o)
diag("pc-relative relocation address is too big: %#llx", o);
} else {
if(o != (int32)o && o != (uint32)o)
diag("non-pc-relative relocation address is too big: %#llux", o);
}
fl = o;
cast = (uchar*)&fl;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment