From 57436cad9cc452eeeeafe007705daa9752835b14 Mon Sep 17 00:00:00 2001 From: Christophe Lyon Date: Wed, 4 Jul 2018 17:55:15 +0200 Subject: rtld: Do not protect RELRO segments when we don't use an MMU. Without MMU, we cannot mark memory regions as read-only. * ldso/ldso/dl-elf.c (_dl_protect_relro): Do nothing if __ARCH_USE_MMU__ is defined. Signed-off-by: Christophe Lyon --- ldso/ldso/dl-elf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c index d264e6a49..1768b5bb8 100644 --- a/ldso/ldso/dl-elf.c +++ b/ldso/ldso/dl-elf.c @@ -117,6 +117,7 @@ int _dl_unmap_cache(void) void _dl_protect_relro (struct elf_resolve *l) { +#ifdef __ARCH_USE_MMU__ ElfW(Addr) base = (ElfW(Addr)) DL_RELOC_ADDR(l->loadaddr, l->relro_addr); ElfW(Addr) start = (base & PAGE_ALIGN); ElfW(Addr) end = ((base + l->relro_size) & PAGE_ALIGN); @@ -126,6 +127,7 @@ _dl_protect_relro (struct elf_resolve *l) _dl_dprintf(2, "%s: cannot apply additional memory protection after relocation", l->libname); _dl_exit(0); } +#endif } /* This function's behavior must exactly match that -- cgit v1.2.3