mirror of
https://github.com/golang/go
synced 2024-11-18 12:04:57 -07:00
cmd/link: non-executable stack support for Solaris
Support the tagging of binaries created with the internal linker on Solaris as having a non-executable stack by writing a PT_SUNWSTACK program header. Fixes #16074 Change-Id: I3888f2153083385d04a52f341570f93e5738b276 Reviewed-on: https://go-review.googlesource.com/24142 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
456b7f5a97
commit
f373bf1eb9
@ -238,6 +238,7 @@ const (
|
||||
PT_GNU_STACK = 0x6474e551
|
||||
PT_GNU_RELRO = 0x6474e552
|
||||
PT_PAX_FLAGS = 0x65041580
|
||||
PT_SUNWSTACK = 0x6ffffffb
|
||||
PF_X = 0x1
|
||||
PF_W = 0x2
|
||||
PF_R = 0x4
|
||||
@ -2550,6 +2551,10 @@ func Asmbelf(ctxt *Link, symo int64) {
|
||||
ph.type_ = PT_PAX_FLAGS
|
||||
ph.flags = 0x2a00 // mprotect, randexec, emutramp disabled
|
||||
ph.align = uint64(SysArch.RegSize)
|
||||
} else if Headtype == obj.Hsolaris {
|
||||
ph := newElfPhdr()
|
||||
ph.type_ = PT_SUNWSTACK
|
||||
ph.flags = PF_W + PF_R
|
||||
}
|
||||
|
||||
elfobj:
|
||||
|
Loading…
Reference in New Issue
Block a user