diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2022-10-20 17:27:04 +0100 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2022-10-27 14:46:54 +0100 |
commit | ddd4011014924bd46d9fce4cc5333bea9d792d41 (patch) | |
tree | b71826432ad2c55f0ba00db1544f6acfc54373f7 | |
parent | 6716729644e3ada162b4771b0d5852140142bc42 (diff) | |
download | glibc-ddd4011014924bd46d9fce4cc5333bea9d792d41.zip glibc-ddd4011014924bd46d9fce4cc5333bea9d792d41.tar.gz glibc-ddd4011014924bd46d9fce4cc5333bea9d792d41.tar.bz2 |
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 28ca1ca..7c8b9b6 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 95bcfc1..1499456 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) |