aboutsummaryrefslogtreecommitdiff
path: root/elf/rtld.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-02-17 18:23:42 +0000
committerUlrich Drepper <drepper@redhat.com>1998-02-17 18:23:42 +0000
commitc6222ab921cee390ea3aab57795e028d587b77e2 (patch)
tree1786e626fbd5876fac5496febe5f5c118d4c0ac8 /elf/rtld.c
parent71a14d64831fed0b9fd6a0488aff6d6eab89b448 (diff)
downloadglibc-c6222ab921cee390ea3aab57795e028d587b77e2.tar
glibc-c6222ab921cee390ea3aab57795e028d587b77e2.tar.gz
glibc-c6222ab921cee390ea3aab57795e028d587b77e2.tar.bz2
glibc-c6222ab921cee390ea3aab57795e028d587b77e2.zip
Update.
1998-02-17 17:41 Ulrich Drepper <drepper@cygnus.com> * elf/dl-load.c (open_path): Take extra argument PRELOADED. If PRELOADED is nonzero check in case of an SUID application whether the shared object has the SUID bit set. Fix some other problems with handling shared objects in system specific directories. (_dl_map_object): Also take extra parameter and pass it to open_path. * elf/link.h (_dl_map_object): Correct prototype and comment. * elf/rtld.c (dl_main): Call _dl_map_object correctly. * elf/dl-open.c (_dl_open): Likewise. * elf/dl-deps.c (openaux, _dl_map_object_deps): Likewise. * sysdeps/libm-ieee754/s_modfl.c: Handle numbers > 1.0 correctly. * math/libm-test.c (modf_test): Add test for 1.5.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r--elf/rtld.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/elf/rtld.c b/elf/rtld.c
index 9529b9c14e..2ca1692584 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -187,7 +187,7 @@ static void
map_doit (void *a)
{
struct map_args *args = (struct map_args *)a;
- args->main_map = _dl_map_object (NULL, args->str, lt_library, 0);
+ args->main_map = _dl_map_object (NULL, args->str, 0, lt_library, 0);
}
static void
@@ -394,7 +394,7 @@ of this helper program; chances are you did not intend to run this program.\n",
}
}
else
- main_map = _dl_map_object (NULL, _dl_argv[0], lt_library, 0);
+ main_map = _dl_map_object (NULL, _dl_argv[0], 0, lt_library, 0);
phdr = main_map->l_phdr;
phent = main_map->l_phnum;
@@ -509,7 +509,8 @@ of this helper program; chances are you did not intend to run this program.\n",
while ((p = strsep (&list, " :")) != NULL)
if (! __libc_enable_secure || strchr (p, '/') == NULL)
{
- struct link_map *new_map = _dl_map_object (NULL, p, lt_library, 0);
+ struct link_map *new_map = _dl_map_object (NULL, p, 1,
+ lt_library, 0);
if (new_map->l_opencount == 1)
/* It is no duplicate. */
++npreloads;
@@ -569,7 +570,7 @@ of this helper program; chances are you did not intend to run this program.\n",
runp = file + strspn (file, ": \t\n");
while ((p = strsep (&runp, ": \t\n")) != NULL)
{
- struct link_map *new_map = _dl_map_object (NULL, p,
+ struct link_map *new_map = _dl_map_object (NULL, p, 1,
lt_library, 0);
if (new_map->l_opencount == 1)
/* It is no duplicate. */
@@ -583,7 +584,8 @@ of this helper program; chances are you did not intend to run this program.\n",
if (problem != NULL)
{
char *p = strndupa (problem, file_size - (problem - file));
- struct link_map *new_map = _dl_map_object (NULL, p, lt_library, 0);
+ struct link_map *new_map = _dl_map_object (NULL, p, 1,
+ lt_library, 0);
if (new_map->l_opencount == 1)
/* It is no duplicate. */
++npreloads;