mirror of
https://github.com/GrapheneOS/hardened_malloc.git
synced 2025-05-24 00:41:11 -04:00
mte: add untag_pointer() variant for const pointers
This commit is contained in:
parent
be08eeee2d
commit
72dc236d5f
2 changed files with 10 additions and 1 deletions
9
memtag.h
9
memtag.h
|
@ -19,6 +19,15 @@ static inline void *untag_pointer(void *ptr) {
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline const void *untag_const_pointer(const void *ptr) {
|
||||
#ifdef HAS_ARM_MTE
|
||||
const uintptr_t mask = UINTPTR_MAX >> 8;
|
||||
return (const void *) ((uintptr_t) ptr & mask);
|
||||
#else
|
||||
return ptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void *set_pointer_tag(void *ptr, u8 tag) {
|
||||
#ifdef HAS_ARM_MTE
|
||||
return (void *) (((uintptr_t) tag << 56) | (uintptr_t) untag_pointer(ptr));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue