]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Don't crash when dependencies are missing
authorAndreas Schwab <schwab@redhat.com>
Fri, 25 Feb 2011 21:51:24 +0000 (16:51 -0500)
committerPetr Baudis <pasky@suse.cz>
Thu, 26 May 2011 22:04:08 +0000 (00:04 +0200)
(cherry picked from commit f2092faf2b6bd491a1891d5d5e393a8bf85d01d7)

ChangeLog
elf/dl-deps.c

index dd8f1148b12687c8c2d995d97a9079ea95b4b340..48f592fbcbc8df0144fcdceac49e401c4a9b3052 100644 (file)
--- 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.
 
index 7191508486aa109bb5470c2cb725951dc9870ce2..b2f6a46e561631582772e8cb5d37a27acc3b5f53 100644 (file)
@@ -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);
 }