From 6cd9e3c34837e2ec853b26458fe4a340c5bee5f2 Mon Sep 17 00:00:00 2001 From: Lucas Teske Date: Sun, 13 Sep 2020 21:55:08 -0300 Subject: [PATCH] arm64: make dynamic loader structs and constants private --- src/runtime/dynamic_arm64.go | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/runtime/dynamic_arm64.go b/src/runtime/dynamic_arm64.go index 10da6b3a..6fa6ef3c 100644 --- a/src/runtime/dynamic_arm64.go +++ b/src/runtime/dynamic_arm64.go @@ -7,45 +7,45 @@ import ( const debugLoader = false const ( - R_AARCH64_RELATIVE = 1027 - DT_NULL = 0 /* Terminating entry. */ - DT_RELA = 7 /* Address of ElfNN_Rela relocations. */ - DT_RELASZ = 8 /* Total size of ElfNN_Rela relocations. */ + rAARCH64_RELATIVE = 1027 + dtNULL = 0 /* Terminating entry. */ + dtRELA = 7 /* Address of ElfNN_Rela relocations. */ + dtRELASZ = 8 /* Total size of ElfNN_Rela relocations. */ ) /* ELF64 relocations that need an addend field. */ -type Rela64 struct { +type rela64 struct { Off uint64 /* Location to be relocated. */ Info uint64 /* Relocation type and symbol index. */ Addend int64 /* Addend. */ } // ELF64 Dynamic structure. The ".dynamic" section contains an array of them. -type Dyn64 struct { +type dyn64 struct { Tag int64 /* Entry type. */ Val uint64 /* Integer/address value */ } //export __dynamic_loader -func dynamicLoader(base uintptr, dyn *Dyn64) { - var rela *Rela64 +func dynamicLoader(base uintptr, dyn *dyn64) { + var rela *rela64 relasz := uint64(0) if debugLoader { println("ASLR Base: ", base) } - for dyn.Tag != DT_NULL { + for dyn.Tag != dtNULL { switch dyn.Tag { - case DT_RELA: - rela = (*Rela64)(unsafe.Pointer(base + uintptr(dyn.Val))) - case DT_RELASZ: - relasz = uint64(dyn.Val) / uint64(unsafe.Sizeof(Rela64{})) + case dtRELA: + rela = (*rela64)(unsafe.Pointer(base + uintptr(dyn.Val))) + case dtRELASZ: + relasz = uint64(dyn.Val) / uint64(unsafe.Sizeof(rela64{})) } ptr := uintptr(unsafe.Pointer(dyn)) - ptr += unsafe.Sizeof(Dyn64{}) - dyn = (*Dyn64)(unsafe.Pointer(ptr)) + ptr += unsafe.Sizeof(dyn64{}) + dyn = (*dyn64)(unsafe.Pointer(ptr)) } if rela == nil { @@ -58,14 +58,14 @@ func dynamicLoader(base uintptr, dyn *Dyn64) { for relasz > 0 && rela != nil { switch rela.Info { - case R_AARCH64_RELATIVE: + case rAARCH64_RELATIVE: ptr := (*uint64)(unsafe.Pointer(base + uintptr(rela.Off))) *ptr = uint64(base + uintptr(rela.Addend)) } rptr := uintptr(unsafe.Pointer(rela)) - rptr += unsafe.Sizeof(Rela64{}) - rela = (*Rela64)(unsafe.Pointer(rptr)) + rptr += unsafe.Sizeof(rela64{}) + rela = (*rela64)(unsafe.Pointer(rptr)) relasz-- } }