aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2022-10-20 17:27:04 +0100
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2022-11-22 14:31:25 +0000
commit647e35b6ab9dc6a76c5bcb3aead5a4caaf1708cf (patch)
tree7154ef524ab0447a417fc25e04e78240027da76c
parent046ce0eb112e596fbb5437e809d2f575388e61c1 (diff)
downloadglibc-647e35b6ab9dc6a76c5bcb3aead5a4caaf1708cf.tar
glibc-647e35b6ab9dc6a76c5bcb3aead5a4caaf1708cf.tar.gz
glibc-647e35b6ab9dc6a76c5bcb3aead5a4caaf1708cf.tar.bz2
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.h2
-rw-r--r--sysdeps/generic/dl-lookupcfg.h2
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)