From f2092faf2b6bd491a1891d5d5e393a8bf85d01d7 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Fri, 25 Feb 2011 16:51:24 -0500 Subject: Don't crash when dependencies are missing --- ChangeLog | 8 +++++++- elf/dl-deps.c | 8 ++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0113c4c6e1..c30fb5c5d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,12 @@ +2011-02-17 Andreas Schwab + + [BZ #12454] + * elf/dl-deps.c (_dl_map_object_deps): Signal error early when + dependencies are missing. + 2011-02-22 Samuel Thibault - 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 440fb563da..5288353d8f 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) { @@ -683,8 +687,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); } -- cgit 1.4.1