Author: kib
Date: Sun Jan 27 00:37:52 2019
New Revision: 343484
URL: https://svnweb.freebsd.org/changeset/base/343484

Log:
  Remove now redundand ifunc relocation code which should have been
  removed as part of r341441.
  
  This call to reloc_non_plt() may crash if ifunc resolvers use the
  needed libraries symbols since the pass over the needed libs
  relocation is not yet done.  The change in r341441 ensures the right
  relocation order otherwise.
  
  Submitted by: theraven
  MFC after:    1 week
  Discussed in: https://reviews.freebsd.org/D17529

Modified:
  head/libexec/rtld-elf/rtld.c

Modified: head/libexec/rtld-elf/rtld.c
==============================================================================
--- head/libexec/rtld-elf/rtld.c        Sat Jan 26 22:27:12 2019        
(r343483)
+++ head/libexec/rtld-elf/rtld.c        Sun Jan 27 00:37:52 2019        
(r343484)
@@ -2897,16 +2897,6 @@ relocate_object(Obj_Entry *obj, bool bind_now, Obj_Ent
            lockstate) == -1)
                return (-1);
 
-       /*
-        * Process the non-PLT IFUNC relocations.  The relocations are
-        * processed in two phases, because IFUNC resolvers may
-        * reference other symbols, which must be readily processed
-        * before resolvers are called.
-        */
-       if (obj->non_plt_gnu_ifunc &&
-           reloc_non_plt(obj, rtldobj, flags | SYMLOOK_IFUNC, lockstate))
-               return (-1);
-
        if (!obj->mainprog && obj_enforce_relro(obj) == -1)
                return (-1);
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to