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
Mon, Mar 16, 7:13 AM (4 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29759506
Default Alt Text
D31498.diff (928 B)

Event Timeline