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-10-27 14:46:54 +0100
commitddd4011014924bd46d9fce4cc5333bea9d792d41 (patch)
treeb71826432ad2c55f0ba00db1544f6acfc54373f7
parent6716729644e3ada162b4771b0d5852140142bc42 (diff)
downloadglibc-ddd4011014924bd46d9fce4cc5333bea9d792d41.tar
glibc-ddd4011014924bd46d9fce4cc5333bea9d792d41.tar.gz
glibc-ddd4011014924bd46d9fce4cc5333bea9d792d41.tar.bz2
glibc-ddd4011014924bd46d9fce4cc5333bea9d792d41.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)