diff options
Diffstat (limited to 'arch/arm/kernel/ptrace.c')
| -rw-r--r-- | arch/arm/kernel/ptrace.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index efd7a341614b..cd99b83f14c2 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c @@ -19,6 +19,7 @@  #include <linux/user.h>  #include <linux/security.h>  #include <linux/init.h> +#include <linux/signal.h>  #include <asm/uaccess.h>  #include <asm/pgtable.h> @@ -693,7 +694,7 @@ static int do_ptrace(int request, struct task_struct *child, long addr, long dat  		case PTRACE_SYSCALL:  		case PTRACE_CONT:  			ret = -EIO; -			if ((unsigned long) data > _NSIG) +			if (!valid_signal(data))  				break;  			if (request == PTRACE_SYSCALL)  				set_tsk_thread_flag(child, TIF_SYSCALL_TRACE); @@ -728,7 +729,7 @@ static int do_ptrace(int request, struct task_struct *child, long addr, long dat  		 */  		case PTRACE_SINGLESTEP:  			ret = -EIO; -			if ((unsigned long) data > _NSIG) +			if (!valid_signal(data))  				break;  			child->ptrace |= PT_SINGLESTEP;  			clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | 
