elf: In _dl_relocate_object, skip processing if object is relocated
authorFlorian Weimer <fweimer@redhat.com>
Mon, 27 Nov 2023 10:28:07 +0000 (11:28 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 27 Nov 2023 10:28:07 +0000 (11:28 +0100)
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>
elf/dl-reloc.c

index e5c555d..72c8586 100644 (file)
@@ -205,6 +205,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;
@@ -242,9 +245,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?