]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
cheri: elf: Use elfptr_t for function symbol fixup
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Thu, 20 Oct 2022 16:27:04 +0000 (17:27 +0100)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Thu, 27 Oct 2022 13:46:54 +0000 (14:46 +0100)
Propagate capabilities during lazy binding and IFUNC fixup in dlsym.

elf/dl-sym-post.h
sysdeps/generic/dl-lookupcfg.h

index 28ca1cad7e11795de4054ac613aedfea628d55aa..7c8b9b6e77cdd653f99b21cc33d0ca627844916d 100644 (file)
@@ -41,7 +41,7 @@ _dl_sym_post (lookup_t result, const ElfW(Sym) *ref, void *value,
   if (__glibc_unlikely (ELFW(ST_TYPE) (ref->st_info) == STT_GNU_IFUNC))
     {
       DL_FIXUP_VALUE_TYPE fixup
-        = DL_FIXUP_MAKE_VALUE (result, (ElfW(Addr)) value);
+        = DL_FIXUP_MAKE_VALUE (result, (elfptr_t) value);
       fixup = elf_ifunc_invoke (DL_FIXUP_VALUE_ADDR (fixup));
       value = (void *) DL_FIXUP_VALUE_CODE_ADDR (fixup);
     }
index 95bcfc1cc145e745233cf3b4f9ccef52872f5aa4..149945614b103ace6d402eac60a39a89dd4d87aa 100644 (file)
@@ -17,7 +17,7 @@
    <https://www.gnu.org/licenses/>.  */
 
 /* The type of the return value of fixup/profile_fixup.  */
-#define DL_FIXUP_VALUE_TYPE ElfW(Addr)
+#define DL_FIXUP_VALUE_TYPE elfptr_t
 /* Construct a value of type DL_FIXUP_VALUE_TYPE from a code address
    and a link map.  */
 #define DL_FIXUP_MAKE_VALUE(map, addr) (addr)