mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-24 19:40:21 +09:00
Merge tag 'x86_urgent_for_v6.1_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Borislav Petkov: - Do not hold fpregs lock when inheriting FPU permissions because the fpregs lock disables preemption on RT but fpu_inherit_perms() does spin_lock_irq(), which, on RT, uses rtmutexes and they need to be preemptible. - Check the page offset and the length of the data supplied by userspace for overflow when specifying a set of pages to add to an SGX enclave * tag 'x86_urgent_for_v6.1_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/fpu: Drop fpregs lock before inheriting FPU permissions x86/sgx: Add overflow check in sgx_validate_offset_length()
This commit is contained in:
@@ -356,6 +356,9 @@ static int sgx_validate_offset_length(struct sgx_encl *encl,
|
||||
if (!length || !IS_ALIGNED(length, PAGE_SIZE))
|
||||
return -EINVAL;
|
||||
|
||||
if (offset + length < offset)
|
||||
return -EINVAL;
|
||||
|
||||
if (offset + length - PAGE_SIZE >= encl->size)
|
||||
return -EINVAL;
|
||||
|
||||
|
||||
@@ -605,9 +605,9 @@ int fpu_clone(struct task_struct *dst, unsigned long clone_flags, bool minimal)
|
||||
if (test_thread_flag(TIF_NEED_FPU_LOAD))
|
||||
fpregs_restore_userregs();
|
||||
save_fpregs_to_fpstate(dst_fpu);
|
||||
fpregs_unlock();
|
||||
if (!(clone_flags & CLONE_THREAD))
|
||||
fpu_inherit_perms(dst_fpu);
|
||||
fpregs_unlock();
|
||||
|
||||
/*
|
||||
* Children never inherit PASID state.
|
||||
|
||||
Reference in New Issue
Block a user