2005-01-05  Steven Munroe  <sjmunroe@us.ibm.com>

	* elf/rtld.c (dl_main) [NEED_DL_SYSINFO_DSO]: Insure l_map_end and
	l_text_end are set for a VDSO with a single PT_LOAD entry.
This commit is contained in:
Ulrich Drepper 2005-01-06 11:14:03 +00:00
parent 1b99d99f0e
commit ef07fd10d9
2 changed files with 8 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2005-01-05 Steven Munroe <sjmunroe@us.ibm.com>
* elf/rtld.c (dl_main) [NEED_DL_SYSINFO_DSO]: Insure l_map_end and
l_text_end are set for a VDSO with a single PT_LOAD entry.
2005-01-05 Ulrich Drepper <drepper@redhat.com> 2005-01-05 Ulrich Drepper <drepper@redhat.com>
* libio/fmemopen.c (fmemopen_seek): SEEK_END should count from * libio/fmemopen.c (fmemopen_seek): SEEK_END should count from

View File

@ -1,5 +1,5 @@
/* Run time dynamic linker. /* Run time dynamic linker.
Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc. Copyright (C) 1995-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -1304,9 +1304,9 @@ ERROR: ld.so: object '%s' from %s cannot be preloaded: ignored.\n",
{ {
if (! l->l_addr) if (! l->l_addr)
l->l_addr = ph->p_vaddr; l->l_addr = ph->p_vaddr;
else if (ph->p_vaddr + ph->p_memsz >= l->l_map_end) if (ph->p_vaddr + ph->p_memsz >= l->l_map_end)
l->l_map_end = ph->p_vaddr + ph->p_memsz; l->l_map_end = ph->p_vaddr + ph->p_memsz;
else if ((ph->p_flags & PF_X) if ((ph->p_flags & PF_X)
&& ph->p_vaddr + ph->p_memsz >= l->l_text_end) && ph->p_vaddr + ph->p_memsz >= l->l_text_end)
l->l_text_end = ph->p_vaddr + ph->p_memsz; l->l_text_end = ph->p_vaddr + ph->p_memsz;
} }