arm64: add prctl control for resetting ptrauth keys
Add an arm64-specific prctl to allow a thread to reinitialize its pointer authentication keys to random values. This can be useful when exec() is not used for starting new processes, to ensure that different processes still have different keys. Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
committed by
Will Deacon
parent
ccc4381082
commit
ba83088565
@@ -63,6 +63,8 @@ static inline void ptrauth_keys_switch(struct ptrauth_keys *keys)
|
||||
__ptrauth_key_install(APGA, keys->apga);
|
||||
}
|
||||
|
||||
extern int ptrauth_prctl_reset_keys(struct task_struct *tsk, unsigned long arg);
|
||||
|
||||
/*
|
||||
* The EL0 pointer bits used by a pointer authentication code.
|
||||
* This is dependent on TBI0 being enabled, or bits 63:56 would also apply.
|
||||
@@ -86,6 +88,7 @@ do { \
|
||||
ptrauth_keys_switch(&(tsk)->thread_info.keys_user)
|
||||
|
||||
#else /* CONFIG_ARM64_PTR_AUTH */
|
||||
#define ptrauth_prctl_reset_keys(tsk, arg) (-EINVAL)
|
||||
#define ptrauth_strip_insn_pac(lr) (lr)
|
||||
#define ptrauth_thread_init_user(tsk)
|
||||
#define ptrauth_thread_switch(tsk)
|
||||
|
||||
Reference in New Issue
Block a user