cmd/link: check mmap error

We already check mmap errors on some code paths, but we missed
one. Add error check there.

Change-Id: Ic0e9cb0eb03c805de40802cfc5d5500e3e065d99
Reviewed-on: https://go-review.googlesource.com/c/go/+/319290
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
Cherry Mui 2021-05-11 22:40:41 -04:00
parent af0f8c149e
commit e03383a2e2
3 changed files with 6 additions and 3 deletions

View file

@ -167,7 +167,10 @@ func sizeExtRelocs(ctxt *Link, relsize uint32) {
}
}
filesz := ctxt.Out.Offset() + sz
ctxt.Out.Mmap(uint64(filesz))
err := ctxt.Out.Mmap(uint64(filesz))
if err != nil {
Exitf("mapping output file failed: %v", err)
}
}
// relocSectFn wraps the function writing relocations of a section

View file

@ -334,7 +334,7 @@ func Main(arch *sys.Arch, theArch Arch) {
// Don't mmap if we're building for Wasm. Wasm file
// layout is very different so filesize is meaningless.
if err := ctxt.Out.Mmap(filesize); err != nil {
panic(err)
Exitf("mapping output file failed: %v", err)
}
}
// asmb will redirect symbols to the output file mmap, and relocations

View file

@ -160,7 +160,7 @@ func (out *OutBuf) copyHeap() bool {
total := uint64(bufLen + heapLen)
if heapLen != 0 {
if err := out.Mmap(total); err != nil { // Mmap will copy out.heap over to out.buf
panic(err)
Exitf("mapping output file failed: %v", err)
}
}
return true