aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-09-08 05:49:02 +0000
committerUlrich Drepper <drepper@redhat.com>2000-09-08 05:49:02 +0000
commit48da10925964e02aa3dd4f7d7373984e3ccd250e (patch)
treee99c8ea52524113feb1b2856089c76fd4ca07a8a
parent63e18f77e2e1cfadfd7d6daa0c2c6583c7c7d7d9 (diff)
downloadglibc-48da10925964e02aa3dd4f7d7373984e3ccd250e.zip
glibc-48da10925964e02aa3dd4f7d7373984e3ccd250e.tar.gz
glibc-48da10925964e02aa3dd4f7d7373984e3ccd250e.tar.bz2
Update.
* elf/dl-load.c (lose): Decrement _nl_loaded. (_dl_map_object_from_fd): Don't try to dlopen executables.
-rw-r--r--ChangeLog3
-rw-r--r--elf/dl-load.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 212eaa8..b34bde4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2000-09-07 Ulrich Drepper <drepper@redhat.com>
+ * elf/dl-load.c (lose): Decrement _nl_loaded.
+ (_dl_map_object_from_fd): Don't try to dlopen executables.
+
* iconvdata/tst-tables.sh: Actually return with an error if
something goes wrong.
* iconvdata/tst-table.sh: Return with an error if any of the cmp fails.
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 4fd4dfb..2911e07 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -709,6 +709,7 @@ lose (int code, int fd, const char *name, char *realname, struct link_map *l,
l->l_prev->l_next = l->l_next;
if (l->l_next)
l->l_next->l_prev = l->l_prev;
+ --_dl_nloaded;
free (l);
}
free (realname);
@@ -997,6 +998,13 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
}
else
{
+ /* This object is loaded at a fixed address. This must never
+ happen for objects loaded with dlopen(). */
+ if (mode & __RTLD_DLOPEN)
+ {
+ LOSE (0, N_("cannot dynamically load executable"));
+ }
+
/* Notify ELF_PREFERRED_ADDRESS that we have to load this one
fixed. */
ELF_FIXED_ADDRESS (loader, c->mapstart);