Bernhard Reutner-Fischer пре 16 година
родитељ
комит
3cd5e0b1c9
2 измењених фајлова са 3 додато и 3 уклоњено
  1. 2 2
      ldso/ldso/dl-elf.c
  2. 1 1
      ldso/ldso/ldso.c

+ 2 - 2
ldso/ldso/dl-elf.c

@@ -119,8 +119,8 @@ void
 _dl_protect_relro (struct elf_resolve *l)
 {
 	ElfW(Addr) base = (ElfW(Addr)) DL_RELOC_ADDR(l->loadaddr, l->relro_addr);
-	ElfW(Addr) start = (base & ~(_dl_pagesize - 1));
-	ElfW(Addr) end = ((base + l->relro_size) & ~(_dl_pagesize - 1));
+	ElfW(Addr) start = (base & PAGE_ALIGN);
+	ElfW(Addr) end = ((base + l->relro_size) & PAGE_ALIGN);
 	_dl_if_debug_dprint("RELRO protecting %s:  start:%x, end:%x\n", l->libname, start, end);
 	if (start != end &&
 	    _dl_mprotect ((void *) start, end - start, PROT_READ) < 0) {

+ 1 - 1
ldso/ldso/ldso.c

@@ -914,7 +914,7 @@ void *_dl_malloc(size_t size)
 		   The actual page size doesn't really matter; as long
 		   as we're self-consistent here, we're safe.  */
 		if (size < _dl_pagesize)
-			rounded_size = (size + _dl_pagesize - 1) & _dl_pagesize;
+			rounded_size = (size + ADDR_ALIGN) & _dl_pagesize;
 		else
 			rounded_size = size;