The branch main has been updated by markj:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=79dea0c8af4eeb394c6db6ce62a4da77177bd234

commit 79dea0c8af4eeb394c6db6ce62a4da77177bd234
Author:     Mark Johnston <ma...@freebsd.org>
AuthorDate: 2025-07-02 18:38:20 +0000
Commit:     Mark Johnston <ma...@freebsd.org>
CommitDate: 2025-07-02 18:41:06 +0000

    linker: Fix the ifunc symbol value calculation for ET_REL files
    
    Reported by:    cy
    Fixes:          aefae931820f ("linker: Improve handling of ifuncs when 
fetching symbol metadata")
---
 sys/kern/link_elf_obj.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index 3d18aed2b1c0..151aab96f9be 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -1514,19 +1514,17 @@ static void
 link_elf_ifunc_symbol_value(linker_file_t lf, caddr_t *valp, size_t *sizep)
 {
        c_linker_sym_t sym;
-       elf_file_t ef;
        const Elf_Sym *es;
        caddr_t val;
        long off;
 
        val = *valp;
-       ef = (elf_file_t)lf;
 
        /* Provide the value and size of the target symbol, if available. */
        val = ((caddr_t (*)(void))val)();
        if (link_elf_search_symbol(lf, val, &sym, &off) == 0 && off == 0) {
                es = (const Elf_Sym *)sym;
-               *valp = (caddr_t)ef->address + es->st_value;
+               *valp = (caddr_t)es->st_value;
                *sizep = es->st_size;
        } else {
                *valp = val;

Reply via email to