diff options
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | elf/dl-deps.c | 6 | ||||
-rw-r--r-- | posix/tst-getaddrinfo.c | 4 | ||||
-rw-r--r-- | sysdeps/posix/getaddrinfo.c | 5 | ||||
-rw-r--r-- | sysdeps/sh/dl-machine.h | 24 |
5 files changed, 45 insertions, 9 deletions
@@ -1,3 +1,18 @@ +2001-05-23 kaz Kojima <kkojima@rr.iij4u.or.jp> + + * sysdeps/sh/dl-machine.h (_dl_runtime_resolve): Handle newer PLT. + (_dl_runtime_profile): Likewise.. + +2001-05-23 Thorsten Kukuk <kukuk@suse.de> + + * sysdeps/posix/getaddrinfo.c: Support for AF_UNIX commented out. + * posix/tst-getaddrinfo.c: Remove AF_UNIX test. + +2001-05-19 H.J. Lu <hjl@gnu.org> + + * elf/dl-deps.c (_dl_map_object_deps): Pass objname and + errstring of the failed DSO to _dl_signal_error (). + 2001-05-23 Ulrich Drepper <drepper@redhat.com> * iconvdata/gconv-modules: Add more aliases to enable use in diff --git a/elf/dl-deps.c b/elf/dl-deps.c index 8b9e132..9bdaa46 100644 --- a/elf/dl-deps.c +++ b/elf/dl-deps.c @@ -141,6 +141,7 @@ _dl_map_object_deps (struct link_map *map, int errno_saved; int errno_reason; const char *errstring; + const char *objname; auto inline void preload (struct link_map *map); @@ -221,7 +222,6 @@ _dl_map_object_deps (struct link_map *map, { /* Map in the needed object. */ struct link_map *dep; - const char *objname; /* Recognize DSTs. */ name = expand_dst (l, strtab + d->d_un.d_val, 0); @@ -263,7 +263,6 @@ _dl_map_object_deps (struct link_map *map, } else if (d->d_tag == DT_AUXILIARY || d->d_tag == DT_FILTER) { - const char *objname; struct list *newp; /* Recognize DSTs. */ @@ -289,7 +288,6 @@ _dl_map_object_deps (struct link_map *map, assert (errstring != NULL); if (errstring != _dl_out_of_memory) free ((char *) errstring); - errstring = NULL; /* Simply ignore this error and continue the work. */ continue; @@ -541,5 +539,5 @@ out: if (errno_reason) _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, - errstring ?: "", N_("cannot load shared object file")); + objname, errstring); } diff --git a/posix/tst-getaddrinfo.c b/posix/tst-getaddrinfo.c index 84929f5..a6197f2 100644 --- a/posix/tst-getaddrinfo.c +++ b/posix/tst-getaddrinfo.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,7 +26,7 @@ static int do_test (void) { - const int family[3] = { AF_INET, AF_INET6, AF_UNIX }; + const int family[2] = { AF_INET, AF_INET6 }; int result = 0; int gaierr, index; struct addrinfo hints, *ai, *aitop; diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 5239b62..1c5ed21 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -125,6 +125,8 @@ static const struct addrinfo default_hints = #endif +#if 0 +/* Using Unix sockets this way is a security risk. */ static int gaih_local (const char *name, const struct gaih_service *service, const struct addrinfo *req, struct addrinfo **pai) @@ -232,6 +234,7 @@ gaih_local (const char *name, const struct gaih_service *service, (*pai)->ai_canonname = NULL; return 0; } +#endif /* 0 */ static int gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp, @@ -690,7 +693,9 @@ static struct gaih gaih[] = { { PF_INET6, gaih_inet }, { PF_INET, gaih_inet }, +#if 0 { PF_LOCAL, gaih_local }, +#endif { PF_UNSPEC, NULL } }; diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h index 6a4aecf..aaaf994 100644 --- a/sysdeps/sh/dl-machine.h +++ b/sysdeps/sh/dl-machine.h @@ -165,6 +165,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) .type _dl_runtime_resolve, @function .align 5 _dl_runtime_resolve: + mov.l r2,@-r15 mov.l r3,@-r15 mov.l r4,@-r15 mov.l r5,@-r15 @@ -175,6 +176,10 @@ _dl_runtime_resolve: mov.l r3,@-r15 " FGR_SAVE " sts.l pr,@-r15 + tst r0,r0 + bt 1f + mov r0,r2 +1: mov r0,r4 ! PLT type mov r2,r5 ! link map address " FUN_ADDR " @@ -189,8 +194,9 @@ _dl_runtime_resolve: mov.l @r15+,r6 mov.l @r15+,r5 mov.l @r15+,r4 + mov.l @r15+,r3 jmp @r0 ! Jump to function address. - mov.l @r15+,r3 + mov.l @r15+,r2 .align 2 3: .long " GOTJMP (fixup) " @@ -200,6 +206,7 @@ _dl_runtime_resolve: .type _dl_runtime_profile, @function .align 5 _dl_runtime_profile: + mov.l r2,@-r15 mov.l r3,@-r15 mov.l r4,@-r15 mov.l r5,@-r15 @@ -210,6 +217,10 @@ _dl_runtime_profile: mov.l r3,@-r15 " FGR_SAVE " sts.l pr,@-r15 + tst r0,r0 + bt 1f + mov r0,r2 +1: mov r0,r4 ! PLT type mov r2,r5 ! link map address sts pr,r7 ! return address @@ -225,8 +236,9 @@ _dl_runtime_profile: mov.l @r15+,r6 mov.l @r15+,r5 mov.l @r15+,r4 + mov.l @r15+,r3 jmp @r0 ! Jump to function address. - mov.l @r15+,r3 + mov.l @r15+,r2 .align 2 3: .long " GOTJMP (profile_fixup) " @@ -243,6 +255,7 @@ _dl_runtime_profile: .align 5 _dl_runtime_resolve: _dl_runtime_profile: + mov.l r2,@-r15 mov.l r3,@-r15 mov.l r4,@-r15 mov.l r5,@-r15 @@ -253,6 +266,10 @@ _dl_runtime_profile: mov.l r3,@-r15 " FGR_SAVE " sts.l pr,@-r15 + tst r0,r0 + bt 1f + mov r0,r2 +1: mov r0,r4 ! PLT type mov r2,r5 ! link map address sts pr,r7 ! return address @@ -268,8 +285,9 @@ _dl_runtime_profile: mov.l @r15+,r6 mov.l @r15+,r5 mov.l @r15+,r4 + mov.l @r15+,r3 jmp @r0 ! Jump to function address. - mov.l @r15+,r3 + mov.l @r15+,r2 .align 2 3: .long " GOTJMP (fixup) " |