Patch "s390/ptrace: Preserve previous registers for short regset write" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
s390/ptrace: Preserve previous registers for short regset write
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
s390-ptrace-preserve-previous-registers-for-short-regset-write.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
9dce990d2cf57b5ed4e71a9cdbd7eae4335111ffMon Sep 17 00:00:00 2001
From: Martin Schwidefsky <[email protected]>
Date: Tue, 24 Jan 2017 08:05:52 +0100
Subject: s390/ptrace: Preserve previous registers for short regset write
From: Martin Schwidefsky <[email protected]>
commit 9dce990d2cf57b5ed4e71a9cdbd7eae4335111ff upstream.
Ensure that if userspace supplies insufficient data to PTRACE_SETREGSET to fill all the registers, the thread's old registers are preserved.
convert_vx_to_fp() is adapted to handle only a specified number of registers rather than unconditionally handling all of them: other callers of this function are adapted appropriately.
Based on an initial patch by Dave Martin.
--- arch/s390/kernel/ptrace.c | 8 ++++++++ 1 file changed, 8 insertions(+)
arch/s390/kernel/ptrace.c +8 -0
@@ -963,6 +963,11 @@ static int s390_fpregs_set(struct task_sif (target == current)save_fpu_regs (); +if (MACHINE_HAS_VX ) +convert_vx_to_fp (fprs, target->thread.fpu.vxrs); +else +memcpy (&fprs, target->thread.fpu.fprs,sizeof (fprs)); +/* If setting FPC, must validate it first. */ if (count >0 && pos < offsetof(s390_fp_regs , fprs)) {u32 ufpc[2 ] = { target->thread.fpu.fpc,0 };
@@ -1067,6 +1072,9 @@ static int s390_vxrs_low_set(struct taskif (target == current)save_fpu_regs (); +for (i =0 ; i < __NUM_VXRS_LOW; i++) + vxrs[i] = *((__u64 *)(target->thread.fpu.vxrs + i) +1 ); + rc =user_regset_copyin (&pos, &count, &kbuf, &ubuf, vxrs,0 ,-1 );if (rc ==0 )for (i =0 ; i < __NUM_VXRS_LOW; i++)
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/s390-ptrace-preserve-previous-registers-for-short-regset-write.patch