]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Handle non-PLT GNU IFUNC relocations in rtld
authorLeandro Lupori <luporl@FreeBSD.org>
Mon, 6 Jul 2020 11:57:59 +0000 (11:57 +0000)
committerLeandro Lupori <luporl@FreeBSD.org>
Mon, 6 Jul 2020 11:57:59 +0000 (11:57 +0000)
commita5467d6ca20e0b95b873a2767b0ccd21c4c98437
treed3796c61f366606d2121468c667f541d219fac41
parent2c566d312fd0875efd200a8f488d1fda9f8c3d85
Handle non-PLT GNU IFUNC relocations in rtld

In the last IFUNC related changes to rtld, the code that handled non-PLT
GNU IFUNC relocations ended up getting lost. This could leave some
relocations unhandled, causing crashes or misbehavior. This change restores
the handling of these relocations, but now together with the other IFUNC
relocations, allowing resolvers to reference external symbols.

Reviewed by: kib
MFC after: 2 weeks
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D25550
libexec/rtld-elf/rtld.c