Skip to content

Commit 30d2e10

Browse files
authored
Merge pull request #2 from sleirsgoevy/data-fix
Fix missing PT_LOAD segment for .data
2 parents 0b1fe04 + 46e9b38 commit 30d2e10

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

pkg/oelf/OELFGenProgramHeaders.go

+14-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,20 @@ func (orbisElf *OrbisElf) GenerateProgramHeaders() error {
3838
// PT_LOAD for relro will be handled by SCE_RELRO, we can get rid of it
3939
if gnuRelroSegment != nil {
4040
if progHeader.Type == elf.PT_LOAD && progHeader.Off == gnuRelroSegment.Off {
41-
continue
41+
if progHeader.Memsz > (gnuRelroSegment.Memsz + 0x3fff) & ^uint64(0x4000) {
42+
subtractSize := (gnuRelroSegment.Memsz + 0x3fff) & ^uint64(0x4000)
43+
progHeader.Off += subtractSize
44+
progHeader.Vaddr += subtractSize
45+
progHeader.Paddr = 0
46+
if progHeader.Filesz < subtractSize {
47+
progHeader.Filesz = 0
48+
} else {
49+
progHeader.Filesz -= subtractSize
50+
}
51+
progHeader.Memsz -= subtractSize
52+
} else {
53+
continue
54+
}
4255
}
4356
}
4457

0 commit comments

Comments
 (0)