On Mon, 2016-07-25 at 16:16 +0200, Michael Holzheu wrote: > commit dc295880c6752076f8b94ba3885d0bfff09e3e82 upstream > > The syscall_set_return_value function of s390 negates the error argument > before storing the value to the return register gpr2. This is incorrect, > the seccomp code already passes the negative error value. > Store the unmodified error value to gpr2. > > Signed-off-by: Jan Willeke <willeke@xxxxxxxxxx> > Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx> > --- > * Requested versions for stable: v2.6.28 - v3.16 Belatedly queued this up for 3.16. Ben. > * Justification: Patch is needed e.g. for Docker seccomp support on > kernels with version < 3.17. > * Bug was introduced by commit: 753c4dd6a2fa2af "[S390] ptrace changes" > --- > arch/s390/include/asm/syscall.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/s390/include/asm/syscall.h > b/arch/s390/include/asm/syscall.h index abad78d..5bc1259 100644 > --- a/arch/s390/include/asm/syscall.h > +++ b/arch/s390/include/asm/syscall.h > @@ -54,7 +54,7 @@ static inline void syscall_set_return_value(struct > task_struct *task, struct pt_regs *regs, > int error, long val) > { > - regs->gprs[2] = error ? -error : val; > + regs->gprs[2] = error ? error : val; > } > > static inline void syscall_get_arguments(struct task_struct *task, -- Ben Hutchings compatible: Gracefully accepts erroneous data from any source
Attachment:
signature.asc
Description: This is a digitally signed message part