From aa33be2678e80c099df1410ab0d6919829338707 Mon Sep 17 00:00:00 2001 From: Matthias Kruk Date: Tue, 5 May 2020 04:20:41 +0900 Subject: [PATCH] kernel/core: Make elf_phdr_foreach() calculate the address of the headers correctly --- kernel/core/elf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/core/elf.c b/kernel/core/elf.c index b25b7ca..b516446 100644 --- a/kernel/core/elf.c +++ b/kernel/core/elf.c @@ -50,14 +50,16 @@ int elf_phdr_foreach(void *elf, size_t size, hdr = (struct elf_hdr*)elf; if(hdr->e_phoff) { + char *phbase; int i; ret_val = 0; + phbase = (char*)elf + hdr->e_phoff; for(i = 0; i < hdr->e_phnum; i++) { struct elf_phdr *phdr; - phdr = (struct elf_phdr*)((char*)elf + i * hdr->e_phentsize); + phdr = (struct elf_phdr*)(phbase + i * hdr->e_phentsize); ret_val = func(hdr, phdr, arg2); -- 2.47.3