Blob Blame History Raw
commit b893410be304ddcea0bd43f537a13e8b18d37cf2
Author: Florian Weimer <fweimer@redhat.com>
Date:   Mon Nov 27 11:28:07 2023 +0100

    elf: In _dl_relocate_object, skip processing if object is relocated
    
    This is just a minor optimization.  It also makes it more obvious that
    _dl_relocate_object can be called multiple times.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c
index 7d8b2bd2336eecb6..66c9266d7f9d65af 100644
--- a/elf/dl-reloc.c
+++ b/elf/dl-reloc.c
@@ -165,6 +165,9 @@ void
 _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
 		     int reloc_mode, int consider_profiling)
 {
+  if (l->l_relocated)
+    return;
+
   struct textrels
   {
     caddr_t start;
@@ -202,9 +205,6 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
 # define consider_symbind 0
 #endif
 
-  if (l->l_relocated)
-    return;
-
   /* If DT_BIND_NOW is set relocate all references in this object.  We
      do not do this if we are profiling, of course.  */
   // XXX Correct for auditing?