Page MenuHomeFreeBSD

D31498.diff
No OneTemporary

D31498.diff

diff --git a/libexec/rtld-elf/map_object.c b/libexec/rtld-elf/map_object.c
--- a/libexec/rtld-elf/map_object.c
+++ b/libexec/rtld-elf/map_object.c
@@ -325,7 +325,8 @@
}
obj->stack_flags = stack_flags;
obj->relro_page = obj->relocbase + trunc_page(relro_page);
- obj->relro_size = round_page(relro_size);
+ obj->relro_size = trunc_page(relro_page + relro_size) -
+ trunc_page(relro_page);
if (note_start < note_end)
digest_notes(obj, note_start, note_end);
if (note_map != NULL)
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -1557,7 +1557,8 @@
case PT_GNU_RELRO:
obj->relro_page = obj->relocbase + trunc_page(ph->p_vaddr);
- obj->relro_size = round_page(ph->p_memsz);
+ obj->relro_size = trunc_page(ph->p_vaddr + ph->p_memsz) -
+ trunc_page(ph->p_vaddr);
break;
case PT_NOTE:

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 27, 8:37 PM (12 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17821595
Default Alt Text
D31498.diff (928 B)

Event Timeline