aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2011-02-25 16:51:24 -0500
committerPetr Baudis <pasky@suse.cz>2011-05-27 00:04:08 +0200
commitad78094bcb15b4d36ae46da568bbdf29276912b6 (patch)
tree6a2ee0efb10e0da3755e1729beec2575ab0c2b22
parent21eddf8cffb9764fcc280e9d6b52669534c026ba (diff)
downloadglibc-ad78094bcb15b4d36ae46da568bbdf29276912b6.zip
glibc-ad78094bcb15b4d36ae46da568bbdf29276912b6.tar.gz
glibc-ad78094bcb15b4d36ae46da568bbdf29276912b6.tar.bz2
Don't crash when dependencies are missing
(cherry picked from commit f2092faf2b6bd491a1891d5d5e393a8bf85d01d7)
-rw-r--r--ChangeLog8
-rw-r--r--elf/dl-deps.c8
2 files changed, 11 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index dd8f114..48f592f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
+2011-02-17 Andreas Schwab <schwab@redhat.com>
+
+ [BZ #12454]
+ * elf/dl-deps.c (_dl_map_object_deps): Signal error early when
+ dependencies are missing.
+
2011-02-22 Samuel Thibault <samuel.thibault@ens-lyon.org>
- Fix __if_freereq crash: Unlike the generic version which uses free,
+ Fix __if_freereq crash: Unlike the generic version which uses free,
Hurd needs munmap.
* sysdeps/mach/hurd/ifreq.h: New file.
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 7191508..b2f6a46 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -491,6 +491,10 @@ _dl_map_object_deps (struct link_map *map,
if (errno == 0 && errno_saved != 0)
__set_errno (errno_saved);
+ if (errno_reason)
+ _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
+ NULL, errstring);
+
struct link_map **old_l_initfini = NULL;
if (map->l_initfini != NULL && map->l_type == lt_loaded)
{
@@ -666,8 +670,4 @@ Filters not supported with LD_TRACE_PRELINKING"));
}
if (old_l_initfini != NULL)
_dl_scope_free (old_l_initfini);
-
- if (errno_reason)
- _dl_signal_error (errno_reason == -1 ? 0 : errno_reason, objname,
- NULL, errstring);
}