diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-02-17 18:23:42 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-02-17 18:23:42 +0000 |
commit | c6222ab921cee390ea3aab57795e028d587b77e2 (patch) | |
tree | 1786e626fbd5876fac5496febe5f5c118d4c0ac8 /elf/rtld.c | |
parent | 71a14d64831fed0b9fd6a0488aff6d6eab89b448 (diff) | |
download | glibc-c6222ab921cee390ea3aab57795e028d587b77e2.zip glibc-c6222ab921cee390ea3aab57795e028d587b77e2.tar.gz glibc-c6222ab921cee390ea3aab57795e028d587b77e2.tar.bz2 |
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.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -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; |