Date: Sun, 27 Jan 2019 00:37:52 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r343484 - head/libexec/rtld-elf Message-ID: <201901270037.x0R0bqdG001477@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201901270037.x0R0bqdG001477>