diff options
author | Andreas Schwab <schwab@redhat.com> | 2011-02-25 16:51:24 -0500 |
---|---|---|
committer | Petr Baudis <pasky@suse.cz> | 2011-05-27 00:04:08 +0200 |
commit | ad78094bcb15b4d36ae46da568bbdf29276912b6 (patch) | |
tree | 6a2ee0efb10e0da3755e1729beec2575ab0c2b22 | |
parent | 21eddf8cffb9764fcc280e9d6b52669534c026ba (diff) | |
download | glibc-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-- | ChangeLog | 8 | ||||
-rw-r--r-- | elf/dl-deps.c | 8 |
2 files changed, 11 insertions, 5 deletions
@@ -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); } |