From c6222ab921cee390ea3aab57795e028d587b77e2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 17 Feb 1998 18:23:42 +0000 Subject: Update. 1998-02-17 17:41 Ulrich Drepper * 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. --- elf/rtld.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'elf/rtld.c') 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; -- cgit 1.4.1