[Various] libc/1609: Error in 'make check' origtest with testobj1.so
Geoff Keating
geoffk@cygnus.com
Fri Mar 17 11:41:00 GMT 2000
> From: Solar Designer <solar@false.com>
> Date: Fri, 17 Mar 2000 07:36:59 +0300 (MSK)
> Cc: jrenken@sandwich.net, libc-alpha@sourceware.cygnus.com, aj@suse.de
> --- glibc-2.1.3/elf/dl-open.c.orig Fri Mar 17 03:28:31 2000
> +++ glibc-2.1.3/elf/dl-open.c Fri Mar 17 06:09:18 2000
> @@ -106,6 +106,7 @@
> if (l->l_addr != 0 /* Make sure we do not currently set this map up
> in this moment. */
> && caller >= (const void *) l->l_addr
> + && caller < (const void *) l->l_map_end
> && (call_map == NULL || call_map->l_addr < l->l_addr))
> call_map = l;
It's surely wrong that this code is using l_addr. It should be using
l_map_start. It's always wrong to compare l_addr with anything,
because it need have no relationship to where the object is actually loaded.
However, be aware that l_map_* are not always initialised; they don't
get set for ld.so itself. This would be easy to fix.
--
- Geoffrey Keating <geoffk@cygnus.com>
More information about the Libc-alpha
mailing list