[uClibc-cvs] CVS update of uClibc/ldso/ldso (dl-startup.c)

Erik Andersen andersen at codepoet.org
Mon Aug 16 19:17:38 UTC 2004


    Date: Monday, August 16, 2004 @ 13:17:38
  Author: andersen
    Path: /var/cvs/uClibc/ldso/ldso

Modified: dl-startup.c (1.13 -> 1.14)

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


Index: uClibc/ldso/ldso/dl-startup.c
diff -u uClibc/ldso/ldso/dl-startup.c:1.13 uClibc/ldso/ldso/dl-startup.c:1.14
--- uClibc/ldso/ldso/dl-startup.c:1.13	Sat Jun 26 19:16:05 2004
+++ uClibc/ldso/ldso/dl-startup.c	Mon Aug 16 13:17:37 2004
@@ -133,7 +133,7 @@
 	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 @@
 
 	/* 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 @@
 						 * 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");



More information about the uClibc-cvs mailing list