diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-10-27 01:36:12 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-10-27 01:36:12 +0000 |
commit | 5a4b5076f1e002ebb43ccbab7d84dfa76d96146e (patch) | |
tree | 1984a0b90076335862befa306ff274627c8af1b4 /elf | |
parent | 98d2ca3d87a854f163d6989dc8b22aee63588c09 (diff) | |
download | glibc-5a4b5076f1e002ebb43ccbab7d84dfa76d96146e.tar glibc-5a4b5076f1e002ebb43ccbab7d84dfa76d96146e.tar.gz glibc-5a4b5076f1e002ebb43ccbab7d84dfa76d96146e.tar.bz2 glibc-5a4b5076f1e002ebb43ccbab7d84dfa76d96146e.zip |
Update.
* include/dlfcn.h (__RTLD_OPENEXEC): Define.
* elf/dl-load.c (_dl_map_object_from_fd): Don't allow loading
executables unless __RTLD_OPENEXEC flag is present.
* elf/rtld.c (dl_main): Pass __RTLD_OPENEXEC flag to
_dl_map_object when loading the executable.
reverse lookup format for IPv6 addresses is using bitstring and
* resolv/ns_name.c: Implement encoding and decoding bitstring in
Diffstat (limited to 'elf')
-rw-r--r-- | elf/dl-load.c | 2 | ||||
-rw-r--r-- | elf/rtld.c | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c index 0b6e96f998..ecf2ee87eb 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -1129,7 +1129,7 @@ cannot allocate TLS data structures for initial thread"); { /* This object is loaded at a fixed address. This must never happen for objects loaded with dlopen(). */ - if (__builtin_expect (mode & __RTLD_DLOPEN, 0)) + if (__builtin_expect ((mode & __RTLD_OPENEXEC) == 0, 0)) { errstring = N_("cannot dynamically load executable"); goto call_lose; diff --git a/elf/rtld.c b/elf/rtld.c index 7c4d961dbd..344fedeb95 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -787,7 +787,8 @@ of this helper program; chances are you did not intend to run this program.\n\ else { HP_TIMING_NOW (start); - INTUSE(_dl_map_object) (NULL, rtld_progname, 0, lt_library, 0, 0); + INTUSE(_dl_map_object) (NULL, rtld_progname, 0, lt_library, 0, + __RTLD_OPENEXEC); HP_TIMING_NOW (stop); HP_TIMING_DIFF (load_time, start, stop); |