Re: [PATCH] s390/seccomp: fix error return for filtered system calls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]