Browse Source

The pagesize variable used when starting up is _not_ the same
as the _dl_pagesize global, so do not alias the global.
-Erik

Eric Andersen 21 years ago
parent
commit
aa1a5f5c1a
1 changed files with 4 additions and 4 deletions
  1. 4 4
      ldso/ldso/dl-startup.c

+ 4 - 4
ldso/ldso/dl-startup.c

@@ -133,7 +133,7 @@ DL_BOOT(unsigned long args)
 	Elf32_Dyn *dpnt;
 	unsigned long *hash_addr;
 	struct r_debug *debug_addr = NULL;
-	size_t _dl_pagesize;
+	size_t pagesize;
 	int indx;
 #if defined(__i386__)
 	int status = 0;
@@ -290,8 +290,8 @@ found_got:
 
 	/* Call mmap to get a page of writable memory that can be used
 	 * for _dl_malloc throughout the shared lib loader. */
-	_dl_pagesize = (auxvt[AT_PAGESZ].a_un.a_val)? auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
-	mmap_zero = malloc_buffer = _dl_mmap((void *) 0, _dl_pagesize,
+	pagesize = (auxvt[AT_PAGESZ].a_un.a_val)? auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
+	mmap_zero = malloc_buffer = _dl_mmap((void *) 0, pagesize,
 			PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
 	if (_dl_mmap_check_error(mmap_zero)) {
 		SEND_STDERR("dl_boot: mmap of a spare page failed!\n");
@@ -382,7 +382,7 @@ found_got:
 						 * Even though the program header is marked RWE, the kernel gives
 						 * it to us rx.
 						 */
-						Elf32_Addr mpa = (ppnt->p_vaddr + app_tpnt->loadaddr) & ~(_dl_pagesize - 1);
+						Elf32_Addr mpa = (ppnt->p_vaddr + app_tpnt->loadaddr) & ~(pagesize - 1);
 						Elf32_Word mps = ((ppnt->p_vaddr + app_tpnt->loadaddr) - mpa) + ppnt->p_memsz;
 						if(_dl_mprotect(mpa, mps, PROT_READ | PROT_WRITE | PROT_EXEC)) {
 							SEND_STDERR("Couldn't mprotect .dynamic segment to rwx.\n");