diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2022-10-20 17:27:04 +0100 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2022-11-22 14:31:25 +0000 |
commit | 647e35b6ab9dc6a76c5bcb3aead5a4caaf1708cf (patch) | |
tree | 7154ef524ab0447a417fc25e04e78240027da76c | |
parent | 046ce0eb112e596fbb5437e809d2f575388e61c1 (diff) | |
download | glibc-647e35b6ab9dc6a76c5bcb3aead5a4caaf1708cf.tar.gz glibc-647e35b6ab9dc6a76c5bcb3aead5a4caaf1708cf.tar.xz glibc-647e35b6ab9dc6a76c5bcb3aead5a4caaf1708cf.zip |
cheri: elf: Use elfptr_t for function symbol fixup
Propagate capabilities during lazy binding and IFUNC fixup in dlsym.
-rw-r--r-- | elf/dl-sym-post.h | 2 | ||||
-rw-r--r-- | sysdeps/generic/dl-lookupcfg.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/elf/dl-sym-post.h b/elf/dl-sym-post.h index 28ca1cad7e..7c8b9b6e77 100644 --- a/elf/dl-sym-post.h +++ b/elf/dl-sym-post.h @@ -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); } diff --git a/sysdeps/generic/dl-lookupcfg.h b/sysdeps/generic/dl-lookupcfg.h index 95bcfc1cc1..149945614b 100644 --- a/sysdeps/generic/dl-lookupcfg.h +++ b/sysdeps/generic/dl-lookupcfg.h @@ -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) |